From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ian D Newsgroups: gmane.emacs.devel Subject: Re: Network Manager Date: Thu, 13 Dec 2012 16:58:26 -0500 Message-ID: <87vcc5ehrx.fsf@gnu.org> References: <87mwxhbpk0.fsf@gnu.org> <8738z9y67z.fsf@bzg.ath.cx> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1355435933 28862 80.91.229.3 (13 Dec 2012 21:58:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 13 Dec 2012 21:58:53 +0000 (UTC) Cc: emacs-devel@gnu.org To: Bastien Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Dec 13 22:59:08 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TjGo4-0000jj-Cj for ged-emacs-devel@m.gmane.org; Thu, 13 Dec 2012 22:59:04 +0100 Original-Received: from localhost ([::1]:50318 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TjGnr-0001rm-Iv for ged-emacs-devel@m.gmane.org; Thu, 13 Dec 2012 16:58:51 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:59786) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TjGno-0001rU-3Z for emacs-devel@gnu.org; Thu, 13 Dec 2012 16:58:48 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TjGnl-0006vG-Kf for emacs-devel@gnu.org; Thu, 13 Dec 2012 16:58:48 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:41798) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TjGnl-0006uc-Ev for emacs-devel@gnu.org; Thu, 13 Dec 2012 16:58:45 -0500 Original-Received: from [2620:0:2820:2210:226:b6ff:fee6:518e] (port=54382 helo=parabola) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1TjGnk-0005K0-GA; Thu, 13 Dec 2012 16:58:45 -0500 In-Reply-To: <8738z9y67z.fsf@bzg.ath.cx> (Bastien's message of "Thu, 13 Dec 2012 22:47:44 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:155531 Archived-At: --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=enwc.tar.gz Content-Transfer-Encoding: base64 ZW53Yy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1 MAAwMDAwMTQ0ADAwMDAwMDAwMDAwADEyMDYyNDQ2NzAwADAxMTIyNQAgNQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNrb2xhcgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAdXNlcnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl bndjL2Vud2Mtd2ljZC5lbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUw ADAwMDAxNDQAMDAwMDAwMjE0NzIAMTIwNjI0NDY3MDAAMDEzNDM1ACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAc2tvbGFyAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c2VycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7 OyBlbndjLXdpY2QuZWwgLS0tIFRoZSBXaWNkIGJhY2tlbmQgdG8gRU5XQwoKOzsgQ29weXJpZ2h0 IChDKSAyMDEyIElhbiBEdW5uCgo7OyBBdXRob3I6IElhbiBEdW5uCjs7IEtleXdvcmRzOiBlbndj LCBuZXR3b3JrLCB3aWNkLCBtYW5hZ2VyLCBubQoKOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRU5X QwoKOzsgRU5XQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5IGl0Cjs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cjs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikKOzsgYW55IGxhdGVyIHZlcnNp b24uCgo7OyBFTldDIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dCBXSVRIT1VUCjs7IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWQo7OyBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljCjs7IExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KCjs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCjs7IGFsb25nIHdpdGggRU5XQzsgc2VlIHRoZSBm aWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCjs7IFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo7OyAw MjExMC0xMzAxLCBVU0EuCgoocmVxdWlyZSAnZW53YykKCihkZWZncm91cCBlbndjLXdpY2Qgbmls CiAgIipXaWNkIHZhcmlhYmxlcyBmb3IgRU5XQy4iCiAgOnByZWZpeCAiZW53Yy13aWNkLSIKICA6 Z3JvdXAgJ2Vud2MpCgooZGVmY3VzdG9tIGVud2Mtd2ljZC1kYnVzLXNlcnZpY2UgIm9yZy53aWNk LmRhZW1vbiIKICAiVGhlIHdpY2QgRC1CdXMgc2VydmljZSBpZGVudGlmaWVyLiIKICA6Z3JvdXAg J2Vud2Mtd2ljZAogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGVud2Mtd2ljZC1kYnVzLXdp cmVsZXNzLXBhdGggIi9vcmcvd2ljZC9kYWVtb24vd2lyZWxlc3MiCiAgIlRoZSB3aWNkIHdpcmVs ZXNzIEQtQnVzIHBhdGguIgogIDpncm91cCAnZW53Yy13aWNkCiAgOnR5cGUgJ3N0cmluZykKCihk ZWZjdXN0b20gZW53Yy13aWNkLWRidXMtd2lyZWxlc3MtaW50ZXJmYWNlICJvcmcud2ljZC5kYWVt b24ud2lyZWxlc3MiCiAgIlRoZSB3aWNkIHdpcmVsZXNzIEQtQnVzIGludGVyZmFjZS4iCiAgOmdy b3VwICdlbndjLXdpY2QKICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBlbndjLXdpY2QtZGJ1 cy13aXJlZC1wYXRoICIvb3JnL3dpY2QvZGFlbW9uL3dpcmVkIgogICJUaGUgd2ljZCB3aXJlZCBE LUJ1cyBwYXRoLiIKICA6Z3JvdXAgJ2Vud2Mtd2ljZAogIDp0eXBlICdzdHJpbmcpCgooZGVmY3Vz dG9tIGVud2Mtd2ljZC1kYnVzLXdpcmVkLWludGVyZmFjZSAib3JnLndpY2QuZGFlbW9uLndpcmVk IgogICJUaGUgd2ljZCB3aXJlZCBELUJ1cyBpbnRlcmZhY2UuIgogIDpncm91cCAnZW53Yy13aWNk CiAgOnR5cGUgJ3N0cmluZykKCihkZWZ2YXIgZW53Yy13aWNkLWRldGFpbHMtbGlzdAogICcoImVz c2lkIiAiYnNzaWQiICJxdWFsaXR5IiAiZW5jcnlwdGlvbiIgIm1vZGUiICJjaGFubmVsIikKICAi VGhlIGxpc3Qgb2YgdGhlIGRlc2lyZWQgZGV0YWlscyB0byBiZSBvYnRhaW5lZCBmcm9tIGVhY2gg bmV0d29yay4iKQoKKGRlZnVuIGVud2Mtd2ljZC1kYnVzLXdpcmVsZXNzLWNhbGwtbWV0aG9kICht ZXRob2QgJnJlc3QgYXJncykKICAiQ2FsbHMgRC1CdXMgbWV0aG9kIE1FVEhPRCB3aXRoIGFyZ3Vt ZW50cyBBUkdTIHdpdGhpbgp0aGUgd2ljZCB3aXJlbGVzcyBpbnRlcmZhY2UuIgogIChhcHBseSAn ZGJ1cy1jYWxsLW1ldGhvZCA6c3lzdGVtCgkgZW53Yy13aWNkLWRidXMtc2VydmljZQoJIGVud2Mt d2ljZC1kYnVzLXdpcmVsZXNzLXBhdGgKCSBlbndjLXdpY2QtZGJ1cy13aXJlbGVzcy1pbnRlcmZh Y2UKCSBtZXRob2QKCSA6dGltZW91dCAyNTAwMAoJIGFyZ3MpKQoKKGRlZnVuIGVud2Mtd2ljZC1k YnVzLXdpcmVkLWNhbGwtbWV0aG9kIChtZXRob2QgJnJlc3QgYXJncykKICAiQ2FsbHMgRC1CdXMg bWV0aG9kIE1FVEhPRCB3aXRoIGFyZ3VtZW50cyBBUkdTIHdpdGhpbgp0aGUgd2ljZCB3aXJlZCBp bnRlcmZhY2UuIgogIChhcHBseSAnZGJ1cy1jYWxsLW1ldGhvZCA6c3lzdGVtCgkgZW53Yy13aWNk LWRidXMtc2VydmljZQoJIGVud2Mtd2ljZC1kYnVzLXdpcmVkLXBhdGgKCSBlbndjLXdpY2QtZGJ1 cy13aXJlZC1pbnRlcmZhY2UKCSBtZXRob2QKCSA6dGltZW91dCAyNTAwMAoJIGFyZ3MpKQoKKGRl ZnVuIGVud2Mtd2ljZC1zY2FuICgpCiAgIldpY2Qgc2NhbiBmdW5jdGlvbi4iCiAgKGVud2Mtd2lj ZC1kYnVzLXdpcmVsZXNzLWNhbGwtbWV0aG9kICJTY2FuIiB0KSkKCihkZWZ1biBlbndjLXdpY2Qt Z2V0LW5ldHdvcmtzICgpCiAgIldpY2QgZ2V0IG5ldHdvcmtzIGZ1bmN0aW9uLiAgSnVzdCByZXR1 cm5zIGEgbnVtYmVyIHNlcXVlbmNlLiIKICAobnVtYmVyLXNlcXVlbmNlIDAgKDEtIChlbndjLXdp Y2QtZGJ1cy13aXJlbGVzcy1jYWxsLW1ldGhvZCAiR2V0TnVtYmVyT2ZOZXR3b3JrcyIpKSkpCgoo ZGVmdW4gZW53Yy13aWNkLWdldC13aXJlbGVzcy1uZXR3b3JrLXByb3BlcnR5IChpZCBwcm9wKQog ICJXaWNkIGdldCB3aXJlbGVzcyBuZXR3b3JrIHByb3BlcnR5IGZ1bmN0aW9uLgpUaGlzIGNhbGxz IHRoZSBELUJ1cyBtZXRob2Qgb24gV2ljZCB0byBnZXQgdGhlIHByb3BlcnR5IFBST1AKZnJvbSB3 aXJlbGVzcyBuZXR3b3JrIHdpdGggaWQgSUQuIgogIChlbndjLXdpY2QtZGJ1cy13aXJlbGVzcy1j YWxsLW1ldGhvZCAiR2V0V2lyZWxlc3NQcm9wZXJ0eSIKCQkJCSAgICAgICBpZCBwcm9wKSkKCihk ZWZ1biBlbndjLXdpY2QtZ2V0LWVuY3J5cHRpb24tdHlwZSAoaWQpCiAgIldpY2QgZ2V0IGVuY3J5 cHRpb24gdHlwZSBmdW5jdGlvbi4KVGhpcyBjYWxscyB0aGUgRC1CdXMgbWV0aG9kIG9uIFdpY2Qg dG8gZ2V0IHRoZSBlbmNyeXB0aW9uX21ldGhvZApwcm9wZXJ0eSBmcm9tIHdpcmVsZXNzIG5ldHdv cmsgd2l0aCBpZCBJRC4iCiAgKGVud2Mtd2ljZC1kYnVzLXdpcmVsZXNzLWNhbGwtbWV0aG9kICJH ZXRXaXJlbGVzc1Byb3BlcnR5IgoJCQkJICAgICAgIGlkICJlbmNyeXB0aW9uX21ldGhvZCIpKQoK KGRlZnVuIGVud2Mtd2ljZC1jb25uZWN0IChpZCkKICAiV2ljZCBjb25uZWN0IGZ1bmN0aW9uLgpU aGlzIGNhbGxzIHRoZSBELUJ1cyBtZXRob2Qgb24gV2ljZCB0byBjb25uZWN0IHRvIHdpcmVsZXNz Cm5ldHdvcmsgd2l0aCBpZCBJRC4iCiAgKGVud2Mtd2ljZC1kYnVzLXdpcmVsZXNzLWNhbGwtbWV0 aG9kICJDb25uZWN0V2lyZWxlc3MiIGlkKSkKCihkZWZ1biBlbndjLXdpY2QtZ2V0LWN1cnJlbnQt bnctaWQgKHdpcmVkKQogICJXaWNkIGdldCBjdXJyZW50IG5ldHdvcmsgaWQgZnVuY3Rpb24uClRo aXMgY2FsbHMgdGhlIEQtQnVzIG1ldGhvZCBvbiBXaWNkIHRvIGdldCB0aGUgY3VycmVudAp3aXJl bGVzcyBuZXR3b3JrIGlkLiIKICAoZW53Yy13aWNkLWRidXMtd2lyZWxlc3MtY2FsbC1tZXRob2Qg IkdldEN1cnJlbnROZXR3b3JrSUQiKSkKCihkZWZ1biBlbndjLXdpY2QtY2hlY2stY29ubmVjdGlu ZyAoKQogICJUaGUgV2ljZCBjaGVjayBjb25uZWN0aW5nIGZ1bmN0aW9uLiIKICAoZW53Yy13aWNk LWRidXMtd2lyZWxlc3MtY2FsbC1tZXRob2QgIkNoZWNrSWZXaXJlbGVzc0Nvbm5lY3RpbmciKSkK CihkZWZ1biBlbndjLXdpY2QtZGlzY29ubmVjdCAoKQogICJXaWNkIGRpc2Nvbm5lY3QgZnVuY3Rp b24uIgogIChlbndjLXdpY2QtZGJ1cy13aXJlbGVzcy1jYWxsLW1ldGhvZCAiRGlzY29ubmVjdFdp cmVsZXNzIikpCgooZGVmdW4gZW53Yy13aWNkLWdldC13aXJlZC1wcm9maWxlcyAoKQogICJHZXRz IHRoZSBsaXN0IG9mIHdpcmVkIG5ldHdvcmsgcHJvZmlsZXMuIgogIChlbndjLXdpY2QtZGJ1cy13 aXJlZC1jYWxsLW1ldGhvZCAiR2V0V2lyZWRQcm9maWxlTGlzdCIpKQoKKGRlZnVuIGVud2Mtd2lj ZC13aXJlZC1jb25uZWN0IChpZCkKICAiQ29ubmVjdHMgdG8gdGhlIHdpcmVkIG5ldHdvcmsgd2l0 aCBwcm9maWxlIGlkIElELiIKICAobGV0KiAoKHByb2ZzIChlbndjLWdldC13aXJlZC1wcm9maWxl cykpCgkgKHByZiAobnRoIGlkIHByb2ZzKSkpCiAgICAoZW53Yy13aWNkLWRidXMtd2lyZWQtY2Fs bC1tZXRob2QgIlJlYWRXaXJlZE5ldHdvcmtQcm9maWxlIiBwcmYpCiAgICAoZW53Yy13aWNkLWRi dXMtd2lyZWQtY2FsbC1tZXRob2QgIkNvbm5lY3RXaXJlZCIpKSkKCihkZWZ1biBlbndjLXdpY2Qt d2lyZWQtZGlzY29ubmVjdCAoKQogICJEaXNjb25uZWN0cyBmcm9tIHRoZSB3aXJlZCBjb25uZWN0 aW9uLiIKICAoZW53Yy13aWNkLWRidXMtd2lyZWQtY2FsbC1tZXRob2QgIkRpc2Nvbm5lY3RXaXJl ZCIpKQoKKGRlZnVuIGVud2Mtd2ljZC1pcy13aXJlZCAoKQogICJDaGVja3MgdG8gc2VlIGlmIHdp cmVkIGlzIGNvbm5lY3RlZC4iCiAgKG5vdCAobm90IChlbndjLXdpY2QtZGJ1cy13aXJlZC1jYWxs LW1ldGhvZCAiR2V0V2lyZWRJUCIpKSkpCgooZGVmdW4gZW53Yy13aWNkLWdldC13aXJlZC1udy1w cm9wIChpZCBkZXQpCiAgIkdldHMgcHJvcGVydHkgREVUIGZyb20gdGhlIHdpcmVkIG5ldHdvcmsg d2l0aCBpZCBJRC4iCiAgKGVud2Mtd2ljZC1kYnVzLXdpcmVkLWNhbGwtbWV0aG9kICJHZXRXaXJl ZFByb3BlcnR5IiBpZCBkZXQpKQoKKGRlZnVuIGVud2Mtd2ljZC1nZXQtc2VjLXR5cGVzICh3aXJl ZCkKICAiR2V0cyB0aGUgbGlzdCBvZiBzZWN1cml0eSB0eXBlcy4KV0lSRUQgaW5kaWNhdGVzIHdo ZXRoZXIgdGhpcyBpcyBhIHdpcmVkIGNvbm5lY3Rpb24uClRoZSByZXR1cm5lZCBsaXN0IHdpbGwg YmUgaW4gdGhlIGZvcm1hdDoKIChuYW1lIC4gKChcIk5hbWVcIiAuIFwiRGlzcGxheSBOYW1lXCIp CiAgICAgICAgICAoXCJyZXFzXCIgLiAoKFwiRGlzcGxheVwiIC4gXCJpZFwiKSAuLi4pKSkpIgog IChsZXQgKHNlYy10eXBlcwoJcmV0LWxpc3QpCiAgICAod2l0aC10ZW1wLWJ1ZmZlcgogICAgICAo aW5zZXJ0LWZpbGUtY29udGVudHMgKGNvbmNhdCAiL2V0Yy93aWNkL2VuY3J5cHRpb24vdGVtcGxh dGVzL2FjdGl2ZSIKCQkJCSAgICAoaWYgd2lyZWQKCQkJCQkiX3dpcmVkIikpKQogICAgICAoc2V0 cSBzZWMtdHlwZXMgKHNwbGl0LXN0cmluZyAoYnVmZmVyLXN0cmluZykgIlxuIikpKQogICAgKHNl dHEgcmV0LWxpc3QKCSAgKG1hcGNhciAobGFtYmRhICh4KQoJCSAgICAoaWYgKG5vdCAoZXEgKGxl bmd0aCB4KSAwKSkKCQkJKGxldCAobmFtZSByZXFzKQoJCQkgICh3aXRoLXRlbXAtYnVmZmVyCgkJ CSAgICAoaW5zZXJ0LWZpbGUtY29udGVudHMgKGNvbmNhdCAiL2V0Yy93aWNkL2VuY3J5cHRpb24v dGVtcGxhdGVzLyIKCQkJCQkJCSAgeCkpCgkJCSAgICAocmUtc2VhcmNoLWZvcndhcmQgIm5hbWVb IFx0XSo9WyBcdF0qXFwoW15cbl0qXFwpW1xuXSIpCgkJCSAgICAoc2V0cSBuYW1lIChtYXRjaC1z dHJpbmcgMSkpCgkJCSAgICAocmUtc2VhcmNoLWZvcndhcmQgInJlcXVpcmVbIFx0XSpcXChbXlxu XSpcXClbXG5dIikKCQkJICAgIChsZXQgKChzdHItcmVxcyAoc3BsaXQtc3RyaW5nIChtYXRjaC1z dHJpbmcgMSkgIiAiKSkpCgkJCSAgICAgICh3aGlsZSBzdHItcmVxcwoJCQkJKHNldHEgcmVxcwoJ CQkJICAgICAgKGFwcGVuZCByZXFzCgkJCQkJICAgICAgKGNvbnMgKGNvbnMgKHBvcCBzdHItcmVx cykKCQkJCQkJCSAgKHBvcCBzdHItcmVxcykpCgkJCQkJCSAgICBuaWwpKSkpKQoJCQkgICAgKGNv bnMgeCAoY29ucyAoY29ucyAiTmFtZSIgbmFtZSkgKGNvbnMgKGNvbnMgInJlcXMiIChjb25zIHJl cXMgbmlsKSkgbmlsKSkpCgkJCSAgICApKSkpCgkJICBzZWMtdHlwZXMpKSkpCgooZGVmdW4gZW53 Yy13aWNkLWdldC1wcm9maWxlLWVudCAod2lyZWQgaWQgZW50KQogICJHZXRzIHByb2ZpbGUgZW50 cnkgRU5UIGZyb20gdGhlIG5ldHdvcmsgd2l0aCBpZCBJRC4KV0lSRUQgaXMgc2V0IHRvIGluZGlj YXRlIHdoZXRoZXIgdGhpcyBpcyBhIHdpcmVkIG5ldHdvcmsuClRoaXMgZnVuY3Rpb24gaXMgYSB3 cmFwcGVyIGFyb3VuZCB0aGUgKi1nZXQtKHdpcmVkfHdpcmVsZXNzKS1udy1wcm9wCmZ1bmN0aW9u cywgYWxsb3dpbmcgZm9yIGEgc2luZ2xlIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGZvciB3aXJlZC4i CiAgKGlmIHdpcmVkCiAgICAgIChlbndjLXdpY2QtZ2V0LXdpcmVkLW53LXByb3AgaWQgZW50KQog IChlbndjLXdpY2QtZ2V0LXdpcmVsZXNzLW5ldHdvcmstcHJvcGVydHkgaWQgZW50KSkpCgooZGVm dW4gZW53Yy13aWNkLWdldC1pcC1hZGRyICh3aXJlZCBpZCkKICAiR2V0cyB0aGUgSVAgQWRkcmVz cyBmcm9tIHRoZSBuZXR3b3JrIHdpdGggaWQgSUQuCldpcmVkIGlzIHNldCB0byBpbmRpY2F0ZSB3 aGV0aGVyIHRoaXMgaXMgYSB3aXJlZCBuZXR3b3JrLiIKICAob3IgKGVud2Mtd2ljZC1nZXQtcHJv ZmlsZS1lbnQgd2lyZWQgaWQgImlwIikgIiIpKQoKKGRlZnVuIGVud2Mtd2ljZC1nZXQtbmV0bWFz ayAod2lyZWQgaWQpCiAgIkdldHMgdGhlIE5ldG1hc2sgZnJvbSB0aGUgbmV0d29yayB3aXRoIGlk IElELgpXSVJFRCBpcyBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciB0aGlzIGlzIGEgd2lyZWQgbmV0 d29yay4iCiAgKG9yIChlbndjLXdpY2QtZ2V0LXByb2ZpbGUtZW50IHdpcmVkIGlkICJuZXRtYXNr IikgIiIpKQoKKGRlZnVuIGVud2Mtd2ljZC1nZXQtZ2F0ZXdheSAod2lyZWQgaWQpCiAgICAiR2V0 cyB0aGUgR2F0ZXdheSBmcm9tIHRoZSBuZXR3b3JrIHdpdGggaWQgSUQuCldJUkVEIGlzIHNldCB0 byBpbmRpY2F0ZSB3aGV0aGVyIHRoaXMgaXMgYSB3aXJlZCBuZXR3b3JrLiIKICAob3IgKGVud2Mt d2ljZC1nZXQtcHJvZmlsZS1lbnQgd2lyZWQgaWQgImdhdGV3YXkiKSAiIikpCgooZGVmdW4gZW53 Yy13aWNkLWdldC1kbnMgKHdpcmVkIGlkKQogICAgIkdldHMgdGhlIGxpc3Qgb2YgRE5TIHNlcnZl cnMgZnJvbSB0aGUgbmV0d29yayB3aXRoIGlkIElELgpXSVJFRCBpcyBzZXQgdG8gaW5kaWNhdGUg d2hldGhlciB0aGlzIGlzIGEgd2lyZWQgbmV0d29yay4iCiAgKGxpc3QgKG9yIChlbndjLXdpY2Qt Z2V0LXByb2ZpbGUtZW50IHdpcmVkIGlkICJkbnMxIikgIiIpCgkob3IgKGVud2Mtd2ljZC1nZXQt cHJvZmlsZS1lbnQgd2lyZWQgaWQgImRuczIiKSAiIikKCShvciAoZW53Yy13aWNkLWdldC1wcm9m aWxlLWVudCB3aXJlZCBpZCAiZG5zMyIpICIiKSkpCgooZGVmdW4gZW53Yy13aWNkLXNldC1udy1w cm9wICh3aXJlZCBpZCBwcm9wIHZhbCkKICAiU2V0cyB0aGUgbmV0d29yayBwcm9wZXJ0eSBQUk9Q IG9mIHRoZSBuZXR3b3JrIHdpdGggaWQgSUQKdG8gVkFMLgpXSVJFRCBpbmRpY2F0ZXMgd2hldGhl ciB0aGlzIGlzIGEgd2lyZWQgbmV0d29yay4iCiAgKGlmIHdpcmVkCiAgICAgIChlbndjLXdpY2Qt ZGJ1cy13aXJlZC1jYWxsLW1ldGhvZCAiU2V0V2lyZWRQcm9wZXJ0eSIKCQkJCQlpZCBwcm9wIHZh bCkKICAgIChlbndjLXdpY2QtZGJ1cy13aXJlbGVzcy1jYWxsLW1ldGhvZCAiU2V0V2lyZWxlc3NQ cm9wZXJ0eSIKCQkJCQkgaWQgcHJvcCB2YWwpKSkKCihkZWZ1biBlbndjLXdpY2Qtc2F2ZS1udy1w cm9maWxlICh3aXJlZCBpZCkKICAiU2F2ZSB0aGUgbmV0d29yayBwcm9maWxlIHdpdGggZm9yIHRo ZSBuZXR3b3JrIHdpdGggaWQgSUQuCldJUkVEIGluZGljYXRlcyB3aGV0aGVyIHRoaXMgaXMgYSB3 aXJlZCBuZXR3b3JrLiIKICAoaWYgd2lyZWQKICAgICAgKGVud2Mtd2ljZC1kYnVzLXdpcmVkLWNh bGwtbWV0aG9kICJTYXZlV2lyZWROZXR3b3JrUHJvZmlsZSIgaWQpCiAgICAoZW53Yy13aWNkLWRi dXMtd2lyZWxlc3MtY2FsbC1tZXRob2QgIlNhdmVXaXJlbGVzc05ldHdvcmtQcm9maWxlIiBpZCkp KQoKKGRlZnVuIGVud2Mtd2ljZC1zYXZlLW53LXNldHRpbmdzICh3aXJlZCBpZCBzZXR0aW5ncykK ICAiU2F2ZXMgdGhlIHNldHRpbmdzIGluZGljYXRlZCBieSB0aGUgYXNzb2NpYXRpb24gbGlzdCBT RVRUSU5HUyBmb3IKdGhlIG5ldHdvcmsgd2l0aCBpZCBJRC4iCiAgKGxldCAoKGVuY3R5cGUgKGNk ciAoYXNzb2MgImVuY3R5cGUiIHNldHRpbmdzKSkpKQoKICAgIChlbndjLXdpY2Qtc2V0LW53LXBy b3Agd2lyZWQgaWQgImlwIgoJCQkgICAoY2RyIChhc3NvYyAiYWRkciIgc2V0dGluZ3MpKSkKICAg IChlbndjLXdpY2Qtc2V0LW53LXByb3Agd2lyZWQgaWQgIm5ldG1hc2siCgkJCSAgIChjZHIgKGFz c29jICJuZXRtYXNrIiBzZXR0aW5ncykpKQogICAgKGVud2Mtd2ljZC1zZXQtbnctcHJvcCB3aXJl ZCBpZCAiZ2F0ZXdheSIKCQkJICAgKGNkciAoYXNzb2MgImdhdGV3YXkiIHNldHRpbmdzKSkpCgog ICAgKGVud2Mtd2ljZC1zZXQtbnctcHJvcCB3aXJlZCBpZCAiZG5zMSIKCQkJICAgKGNkciAoYXNz b2MgImRuczEiIHNldHRpbmdzKSkpCiAgICAoZW53Yy13aWNkLXNldC1udy1wcm9wIHdpcmVkIGlk ICJkbnMyIgoJCQkgICAoY2RyIChhc3NvYyAiZG5zMiIgc2V0dGluZ3MpKSkKCiAgICAoZW53Yy13 aWNkLXNldC1udy1wcm9wIHdpcmVkIGlkICJlbmN0eXBlIiBlbmN0eXBlKQogICAgKGlmIChub3Qg KHN0cmluZz0gZW5jdHlwZSAiTm9uZSIpKQoJKGRvbGlzdCAoeCAoY2FkciAoYXNzb2MgInJlcXMi CgkJCQkoY2RyIChhc3NvYyBlbmN0eXBlCgkJCQkJICAgIChlbndjLXdpY2QtZ2V0LXNlYy10eXBl cyB3aXJlZCkpKSkpKQoJICAoZW53Yy13aWNkLXNldC1udy1wcm9wIHdpcmVkIGlkIChjYXIgeCkK CQkJCSAoY2RyIChhc3NvYyAoY2FyIHgpIHNldHRpbmdzKSkpKSkKICAgIChlbndjLXdpY2Qtc2F2 ZS1udy1wcm9maWxlIHdpcmVkIGlkKSkKICApCgoocHJvdmlkZSAnZW53Yy13aWNkKQoKOzs7IEVu ZCBvZiBGaWxlCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVud2MvZW53Yy5lbAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTAAMDAwMDE0NAAwMDAwMDA2NTMw MAAxMjA2MjQ0NzE2NgAwMTI1MTYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdXN0YXIgIABza29sYXIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzZXJzAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7IGVud2MuZWwgLS0tIFRoZSBF bWFjcyBOZXR3b3JrIENsaWVudAoKOzsgQ29weXJpZ2h0IChDKSAyMDEyIElhbiBEdW5uCgo7OyBB dXRob3I6IElhbiBEdW5uCjs7IEtleXdvcmRzOiBlbndjLCBuZXR3b3JrLCB3aWNkLCBtYW5hZ2Vy LCBubQoKOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRU5XQwoKOzsgRU5XQyBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cjs7IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Cjs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChh dCB5b3VyIG9wdGlvbikKOzsgYW55IGxhdGVyIHZlcnNpb24uCgo7OyBFTldDIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCjs7IEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWQo7OyBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VIEdlbmVyYWwgUHVibGljCjs7IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7IFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCjs7IGFsb25nIHdpdGggRU5XQzsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlCjs7IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu IFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo7OyAwMjExMC0xMzAxLCBVU0EuCgo7OyBjb25u ZWN0Cjs7IGRpc2Nvbm5lY3QKOzsgc2Nhbgo7OyBnZXQtcHJvcAo7OyBzYXZlLXByb2ZpbGUKOzsg Z2V0LW5ldHdvcmtzCjs7IGNoZWNrLWNvbm5lY3RpbmcKOzsgZ2V0LWN1cnJlbnQtbnctaWQKCjs7 OyBDb21tZW50YXJ5Ogo7OyAKCihyZXF1aXJlICdkYnVzKQoocmVxdWlyZSAnd2lkLWVkaXQpCgo7 OzsgQ29kZToKCihldmFsLXdoZW4tY29tcGlsZQogIChyZXF1aXJlICdjbCkpCgooZGVmZ3JvdXAg ZW53YyBuaWwKICAiKlRoZSBFbWFjcyBOZXR3b3JrIENsaWVudCIKICA6cHJlZml4ICJld25jLSIK ICA6Z3JvdXAgJ2FwcGxpY2F0aW9ucykKCihkZWZjdXN0b20gZW53Yy13aXJlbGVzcy1kZXZpY2Ug IndsYW4wIgogICJUaGUgd2lyZWxlc3MgZGV2aWNlIHRvIHVzZSBmb3IgRU5XQy4iCiAgOmdyb3Vw ICdlbndjCiAgOnR5cGUgJ3N0cmluZykKCihkZWZjdXN0b20gZW53Yy13aXJlZC1kZXZpY2UgImV0 aDAiCiAgIlRoZSB3aXJlZCBkZXZpY2UgdG8gdXNlIGZvciBFTldDLiIKICA6Z3JvdXAgJ2Vud2MK ICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBlbndjLWJhY2tlbmRzICcod2ljZCBubSkKICAi VGhlIGxpc3Qgb2YgYmFja2VuZHMgdG8gYmUgdXNlZCBieSBFTldDLgpUaGVzZSB3aWxsIGJlIGNo ZWNrZWQgaW4gdGhlIG9yZGVyIGRlc2lnbmF0ZWQgaGVyZSwKYW5kIHRoZSBmaXJzdCBhY3RpdmUg YmFja2VuZCBmb3VuZCB3aWxsIGJlIHVzZWQuIgogIDpncm91cCAnZW53YwogIDp0eXBlICdsaXN0 KQoKKGRlZmN1c3RvbSBlbndjLWhpZGRlbi1zdHJpbmcgIioqKioqKioqIgogICJUaGUgc3RyaW5n IHVzZWQgdG8gaGlkZSB0aGUgdmFsdWVzIGR1cmluZyBlZGl0aW5nLiIKICA6Z3JvdXAgJ2Vud2MK ICA6dHlwZSAnc3RyaW5nKQoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Cjs7IFRoZSBmdW5jdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBhYnN0cmFjdCBs YXllci4KOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 CgooZGVmdmFyIGVud2Mtc2Nhbi1mdW5jIG5pbAogICJUaGUgZnVuY3Rpb24gdmFyaWFibGUgZm9y IHRoZSBzY2FuIGZ1bmN0aW9uLgpUaGlzIHZhcmlhYmxlIGlzIHNldCBkdXJpbmcgc2V0dXAuIikK CihkZWZ2YXIgZW53Yy1nZXQtbnctZnVuYyBuaWwKICAiQSBmdW5jdGlvbiB2YXJpYWJsZSB0byBi ZSB1c2VkIGluIGBlbndjLWdldC1udycuClRoaXMgaXMgcmVkZWZpbmVkIGR1cmluZyBzZXR1cCB0 byBiZSB0aGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBuZXR3b3JrCiBsaXN0LiIpCgooZGVmdmFyIGVu d2MtZ2V0LXdpcmVsZXNzLW53LXByb3AtZnVuYyBuaWwKICAiQSBmdW5jdGlvbiB2YXJpYWJsZSB0 byBiZSB1c2VkIGluIGBlbndjLWdldC13aXJlbGVzcy1udy1wcm9wJy4KVGhpcyBpcyByZWRlZmlu ZWQgZHVyaW5nIHNldHVwIHRvIGJlIHRoZSBmdW5jdGlvbiB0byBnZXQKYSB3aXJlbGVzcyBuZXR3 b3JrIHByb3BlcnR5LiIpCgooZGVmdmFyIGVud2MtZ2V0LWVuY3J5cHRpb24tdHlwZS1mdW5jIG5p bAogICJBIGZ1bmN0aW9uIHZhcmlhYmxlIHRvIGJlIHVzZWQgaW4gYGVud2MtZ2V0LWVuY3J5cHRp b24tdHlwZScuClRoaXMgaXMgcmVkZWZpbmVkIGR1cmluZyBzZXR1cCB0byBiZSB0aGUgZnVuY3Rp b24gdG8gZ2V0IHRoZSBlbmNyeXB0aW9uCnR5cGUgZm9yIHRoZSBzZWxlY3RlZCBiYWNrZW5kLiIp CgooZGVmdmFyIGVud2Mtd2lyZWxlc3MtY29ubmVjdC1mdW5jIG5pbAogICJUaGUgZnVuY3Rpb24g dmFyaWFibGUgZm9yIHRoZSB3aXJlbGVzcyBjb25uZWN0IGZ1bmN0aW9uLgpUaGlzIGlzIHJlZGVm aW5lZCBkdXJpbmcgc2V0dXAgdG8gYmUgdGhlIGZ1bmN0aW9uIHRvIGNvbm5lY3QKZm9yIHRoZSBz ZWxlY3RlZCBiYWNrZW5kLiIpCgooZGVmdmFyIGVud2MtZ2V0LWN1cnJlbnQtbnctaWQtZnVuYyBu aWwKICAiVGhlIGZ1bmN0aW9uIHZhcmlhYmxlIHRvIGJlIHVzZWQgaW4gYGVud2MtZ2V0LWN1cnJl bnQtbnctaWQnLgpUaGlzIGlzIHJlZGVmaW5lZCBkdXJpbmcgc2V0dXAgdG8gYmUgdGhlIGZ1bmN0 aW9uIHRvIGdldAp0aGUgY3VycmVudCBuZXR3b3JrIGlkLiIpCgooZGVmdmFyIGVud2MtY2hlY2st Y29ubmVjdGluZy1mdW5jIG5pbAogICJUaGUgZnVuY3Rpb24gdmFyaWFibGUgdG8gYmUgdXNlZCBp biBgZW53Yy1jaGVjay1jb25uZWN0aW5nJy4KVGhpcyBpcyByZWRlZmluZWQgZHVyaW5nIHNldHVw IHRvIGJlIHRoZSBmdW5jdGlvbiB0bwpjaGVjayB3aGV0aGVyIG9yIG5vdCBFTldDIGlzIGNvbm5l Y3RpbmcuIikKCihkZWZ2YXIgZW53Yy13aXJlbGVzcy1kaXNjb25uZWN0LWZ1bmMgbmlsCiAgIlRo ZSBmdW5jdGlvbiB2YXJpYWJsZSBmb3IgdGhlIHdpcmVsZXNzIGRpc2Nvbm5lY3QgZnVuY3Rpb24u ClRoaXMgaXMgcmVkZWZpbmVkIGR1cmluZyBzZXR1cCB0byBiZSB0aGUgZnVuY3Rpb24gdG8KZGlz Y29ubmVjdCBmcm9tIHRoZSB3aXJlbGVzcyBuZXR3b3JrLiIpCgooZGVmdmFyIGVud2MtZ2V0LXdp cmVkLXByb2ZpbGVzLWZ1bmMgbmlsCiAgIlRoZSBmdW5jdGlvbiB2YXJpYWJsZSB0byBiZSB1c2Vk IGluIGBlbndjLWdldC13aXJlZC1wcm9maWxlcycuClRoaXMgaXMgcmVkZWZpbmVkIGR1cmluZyBz ZXR1cCB0byBiZSB0aGUgZnVuY3Rpb24gdG8KZ2V0IHRoZSBsaXN0IG9mIHdpcmVkIG5ldHdvcmsg cHJvZmlsZXMuIikKCihkZWZ2YXIgZW53Yy13aXJlZC1jb25uZWN0LWZ1bmMgbmlsCiAgIlRoZSBm dW5jdGlvbiB2YXJpYWJsZSBmb3IgdGhlIHdpcmVkIGNvbm5lY3QgZnVuY3Rpb24uClRoaXMgaXMg cmVkZWZpbmVkIGR1cmluZyBzZXR1cCB0byBiZSB0aGUgZnVuY3Rpb24KdG8gY29ubmVjdCB0byBh IHdpcmVkIG5ldHdvcmsuIikKCihkZWZ2YXIgZW53Yy13aXJlZC1kaXNjb25uZWN0LWZ1bmMgbmls CiAgIlRoZSBmdW5jdGlvbiB2YXJpYWJsZSBmb3IgdGhlIHdpcmVkIGRpc2Nvbm5lY3QgZnVuY3Rp b24uClRoaXMgaXMgcmVkZWZpbmVkIGR1cmluZyBzZXR1cCB0byBiZSB0aGUgZnVuY3Rpb24KdG8g ZGlzY29ubmVjdCBmcm9tIGEgd2lyZWQgbmV0d29yay4iKQoKKGRlZnZhciBlbndjLWlzLXdpcmVk LWZ1bmMgbmlsCiAgIlRoZSBmdW5jdGlvbiB2YXJpYWJsZSB0byBiZSB1c2VkIGluIGBlbndjLWlz LXdpcmVkJy4KVGhpcyBpcyByZWRlZmluZWQgZHVyaW5nIHNldHVwIHRvIGJlIHRoZSBmdW5jdGlv biB0bwpjaGVjayB3aGV0aGVyIG9yIG5vdCBhIHdpcmVkIGNvbm5lY3Rpb24gaXMgYWN0aXZlLiIp CgooZGVmdmFyIGVud2MtZ2V0LXdpcmVkLW53LXByb3AtZnVuYyBuaWwKICAiVGhlIGZ1bmN0aW9u IHZhcmlhYmxlIHRvIGJlIHVzZWQgaW4gYGVud2MtZ2V0LXdpcmVkLW53LXByb3AnLgpUaGlzIGlz IHJlZGVmaW5lZCBkdXJpbmcgc2V0dXAgdG8gYmUgdGhlIGZ1bmN0aW9uIHRvIGdldAphIG5ldHdv cmsgcHJvcGVydHkgZnJvbSBhIHdpcmVkIG5ldHdvcmsuIikKCihkZWZ2YXIgZW53Yy1nZXQtc2Vj LXR5cGVzLWZ1bmMgbmlsCiAgIlRoZSBmdW5jdGlvbiB2YXJpYWJsZSB0byBiZSB1c2VkIGluIGBl bndjLWdldC1zZWMtdHlwZXMnLgpUaGlzIGlzIHJlZGVmaW5lZCBkdXJpbmcgc2V0dXAgdG8gYmUg dGhlIGZ1bmN0aW9uIHRvIGdldAp0aGUgc2VjdXJpdHkgdHlwZXMgZm9yIGEgZ2l2ZW4gbmV0d29y ay4iKQoKKGRlZnZhciBlbndjLWdldC1pcC1hZGRyLWZ1bmMgbmlsCiAgIlRoZSBmdW5jdGlvbiB2 YXJpYWJsZSB0byBiZSB1c2VkIGluIGBlbndjLWdldC1pcC1hZGRyJy4KVGhpcyBpcyByZWRlZmlu ZWQgZHVyaW5nIHNldHVwIHRvIGJlIHRoZSBmdW5jdGlvbiB0byBnZXQKdGhlIElQIEFkZHJlc3Mg b2YgYSBnaXZlbiBuZXR3b3JrLiIpCgooZGVmdmFyIGVud2MtZ2V0LW5ldG1hc2stZnVuYyBuaWwK ICAiVGhpcyBpcyByZWRlZmluZWQgZHVyaW5nIHNldHVwIHRvIGJlIHRoZSBmdW5jdGlvbiB0byBn ZXQKdGhlIE5ldG1hc2sgb2YgYSBnaXZlbiBuZXR3b3JrLiIpCgooZGVmdmFyIGVud2MtZ2V0LWdh dGV3YXktZnVuYyBuaWwKICAiVGhpcyBpcyByZWRlZmluZWQgZHVyaW5nIHNldHVwIHRvIGJlIHRo ZSBmdW5jdGlvbiB0byBnZXQKdGhlIEdhdGV3YXkgb2YgYSBnaXZlbiBuZXR3b3JrLiIpCgooZGVm dmFyIGVud2MtZ2V0LWRucy1mdW5jIG5pbAogICJUaGlzIGlzIHJlZGVmaW5lZCBkdXJpbmcgc2V0 dXAgdG8gYmUgdGhlIGZ1bmN0aW9uIHRvIGdldAp0aGUgRE5TIFNlcnZlciBBZGRyZXNzZXMgZm9y IGEgZ2l2ZW4gbmV0d29yay4iKQoKKGRlZnZhciBlbndjLXNhdmUtbnctc2V0dGluZ3MtZnVuYyBu aWwKICAiVGhpcyBpcyByZWRlZmluZWQgZHVyaW5nIHNldHVwIHRvIGJlIHRoZSBmdW5jdGlvbiB0 byBzYXZlCnRoZSBuZXR3b3JrIHNldHRpbmdzIG9mIGEgZ2l2ZW4gbmV0d29yay4iKQoKKGRlZnZh ciBlbndjLWRldGFpbHMtbGlzdCBuaWwKICAiVGhpcyBpcyByZWRlZmluZWQgZHVyaW5nIHNldHVw IHRvIGJlIHRoZSBkZXRhaWxzIGxpc3QKZm9yIHRoZSBzZWxlY3RlZCBiYWNrZW5kLiIpCgooZGVm dmFyIGVud2MtZGlzcGxheS1zdHJpbmcgIiBbMCVdICIpCgooZGVmdmFyIGVud2Mtd2lyZWxlc3Mt aGVhZGVycyAnKCJJRCIgIlNUUiIgIkVTU0lEIgoJCQkJIkVOQ1JZUFQiICJCU1NJRCIgIk1PREUi ICJDSE5MIikKICAiVGhlIGxpc3Qgb2YgaGVhZGVycyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEVO V0MgYnVmZmVyLiIpCgooZGVmdmFyIGVud2MtaWQtd2lkdGggMwogICJUaGUgd2lkdGggb2YgdGhl IGlkIGNvbHVtbi4iKQooZGVmdmFyIGVud2Mtc3RyLXdpZHRoIDUKICAiVGhlIHdpZHRoIG9mIHRo ZSBzdHJlbmd0aCBjb2x1bW4uIikKKGRlZnZhciBlbndjLWVzc2lkLXdpZHRoIDUKICAiVGhlIGlu aXRpYWwgd2lkdGggb2YgdGhlIGVzc2lkIGNvbHVtbi4KVGhpcyBpcyByZXNldCBpbiB3aWNkLXNj YW4taW50ZXJuYWwuIikKKGRlZnZhciBlbndjLWVuY3J5cHQtd2lkdGggMTAKICAiVGhlIHdpZHRo IG9mIHRoZSBlbmNyeXB0aW9uIGNvbHVtbi4iKQooZGVmdmFyIGVud2MtYnNzaWQtd2lkdGggMTgK ICAiVGhlIHdpZHRoIG9mIHRoZSBic3NpZCBjb2x1bW4uIikKKGRlZnZhciBlbndjLW1vZGUtd2lk dGggMTYKICAiVGhlIHdpZHRoIG9mIHRoZSBtb2RlIGNvbHVtbi4iKQooZGVmdmFyIGVud2MtY2hu bC13aWR0aCAzCiAgIlRoZSB3aWR0aCBvZiB0aGUgY2hhbm5lbCBjb2x1bW4uIikKCihkZWZ2YXIg ZW53Yy1sYXN0LXNjYW4gbmlsCiAgIlRoZSBtb3N0IHJlY2VudCBzY2FuIHJlc3VsdHMuIikKCihk ZWZ2YXIgZW53Yy1hY2Nlc3MtcG9pbnRzIG5pbAogICJUaGUgbW9zdCByZWNlbnQgYWNjZXNzIHBv aW50IGxpc3QuIikKCihkZWZ2YXIgZW53Yy11c2luZy13aXJlZCBuaWwKICAiVGhpcyBpcyBgbm9u LU5JTCcgaWYgRU5XQyBpcyB1c2luZyB3aXJlZCBjb25uZWN0aW9ucy4KTm90ZSB0aGF0IHRoaXMg aXMgTk9UIHRoZSBzYW1lIGFzIGBlbndjLWlzLXdpcmVkJy4gIFRoaXMgY2hlY2tzCndoZXRoZXIg b3Igbm90IEVOV0MgaXMgaW4gd2lyZWQgbW9kZS4iKQooZGVmdmFyIGVud2MtZWRpdC1pZCBuaWwK ICAiVGhpcyBpcyB0aGUgbmV0d29yayBpZCBvZiB0aGUgbmV0d29yayBiZWluZyBlZGl0ZWQuIikK CihtYWtlLWxvY2FsLXZhcmlhYmxlICdlbndjLWVkaXQtaWQpCjs7IFRoZSBGb250cwoKKGRlZmZh Y2UgZW53Yy1oZWFkZXItZmFjZQogICcoKCgoY2xhc3MgY29sb3IpIChiYWNrZ3JvdW5kIGxpZ2h0 KSkKICAgICAoOmZvcmVncm91bmQgIkJsdWUiKSkKICAgICgoKGNsYXNzIGNvbG9yKSAoYmFja2dy b3VuZCBkYXJrKSkKICAgICAoOmZvcmVncm91bmQgIkJsdWUiKSkKICAgICh0ICg6YmFja2dyb3Vu ZCAiQmx1ZSIpKSkKICAiVGhlIGZhY2UgZm9yIHRoZSBoZWFkZXJzLiIKICA6Z3JvdXAgJ2Vud2Mp CgooZGVmZmFjZSBlbndjLWNvbm5lY3RlZC1mYWNlCiAgJygoKChjbGFzcyBjb2xvcikgKGJhY2tn cm91bmQgZGFyaykpCiAgICAgKDpmb3JlZ3JvdW5kICJHcmVlbiIpKQogICAgKCgoY2xhc3MgY29s b3IpIChiYWNrZ3JvdW5kIGxpZ2h0KSkKICAgICAoOmZvcmVncm91bmQgIkdyZWVuIikpCiAgICAo dCAoOmJhY2tncm91bmQgIkdyZWVuIikpKQogICJUaGUgZmFjZSBmb3IgdGhlIGNvbm5lY3RlZCBu ZXR3b3JrLiIKICA6Z3JvdXAgJ2Vud2MpCgoKOzsgU21hbGwgaGVscGVyIGZ1bmN0aW9uLgoKKGRl ZnVuIGVud2MtZGV0YWlsLXRvLWlkZW50IChkZXRhaWwpCiAgIkNvbnZlcnRzIGRldGFpbCBERVRB SUwgdG8gYSBjb25zdGFudCBpZGVudGlmaWVyLiIKICAoY2FzZSAoaW50ZXJuIGRldGFpbCkKICAg ICgoZXNzaWQgU3NpZCkgImVzc2lkIikKICAgICgoYnNzaWQgSHdBZGRyZXNzKSAiYnNzaWQiKQog ICAgKChxdWFsaXR5IFN0cmVuZ3RoKSAicXVhbGl0eSIpCiAgICAoKGVuY3J5cHRpb24gRmxhZ3Mp ICJlbmNyeXB0aW9uIikKICAgICgobW9kZSBNb2RlKSAibW9kZSIpCiAgICAoKGNoYW5uZWwgRnJl cXVlbmN5KSAiY2hhbm5lbCIpKSkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7IEVOV0MgZnVuY3Rp b25zCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgooZGVmdW4gZW53Yy1kby1zY2FuICgpCiAgIlJ1bnMg YSBiYWNrZW5kIHNjYW4uIgogIChmdW5jYWxsIGVud2Mtc2Nhbi1mdW5jKSkKCihkZWZ1biBlbndj LWdldC1udyAoKQogICJHZXRzIHRoZSBpZGVudGlmaWVycyBmb3IgdGhlIGFjY2VzcyBwb2ludHMK ZnJvbSBhIHByZXZpb3VzIHNjYW4uIgogIChmdW5jYWxsIGVud2MtZ2V0LW53LWZ1bmMpKQoKKGRl ZnVuIGVud2MtZ2V0LWN1cnJlbnQtbnctaWQgKCkKICAiR2V0cyB0aGUgaWQgb2YgdGhlIGN1cnJl bnQgbmV0d29yayBpZCwKb3IgYG5pbCcgaWYgdGhlcmUgaXNuJ3Qgb25lLiIKICAoZnVuY2FsbCBl bndjLWdldC1jdXJyZW50LW53LWlkLWZ1bmMgZW53Yy11c2luZy13aXJlZCkpCgooZGVmdW4gZW53 Yy1jaGVjay1jb25uZWN0aW5nICgpCiAgIkNoZWNrcyB0byBzZWUgaWYgdGhlcmUgaXMgYSBjb25u ZWN0aW9uCmluIHByb2dyZXNzLiAgUmV0dXJucyBgbm9uLU5JTCcgaWYgdGhlcmUgaXMgb25lLApg TklMJyBvdGhlcndpc2UuIgogIChmdW5jYWxsIGVud2MtY2hlY2stY29ubmVjdGluZy1mdW5jKSkK CihkZWZ1biBlbndjLWdldC13aXJlbGVzcy1udy1wcm9wIChpZCBwcm9wKQogICJHZXRzIHByb3Bl cnR5IFBST1AgZnJvbSB3aXJlbGVzcyBuZXR3b3JrIHdpdGggaWQKSUQgYW5kIHJldHVybnMgaXQu IgogIChmdW5jYWxsIGVud2MtZ2V0LXdpcmVsZXNzLW53LXByb3AtZnVuYyBpZCBwcm9wKSkKCihk ZWZ1biBlbndjLWdldC1lbmNyeXB0aW9uLXR5cGUgKGlkKQogICJHZXRzIHRoZSBlbmNyeXB0aW9u IHR5cGUgdXNlZCBieSB0aGUgd2lyZWxlc3MKbmV0d29yayB3aXRoIGlkIElELiIKICAoZnVuY2Fs bCBlbndjLWdldC1lbmNyeXB0aW9uLXR5cGUtZnVuYyBpZCkpCgooZGVmdW4gZW53Yy1nZXQtd2ly ZWQtcHJvZmlsZXMgKCkKICAiR2V0cyB0aGUgbGlzdCBvZiB3aXJlZCBwcm9maWxlcy4iCiAgKGZ1 bmNhbGwgZW53Yy1nZXQtd2lyZWQtcHJvZmlsZXMtZnVuYykpCgooZGVmdW4gZW53Yy13aXJlbGVz cy1jb25uZWN0IChpZCkKICAiQmVnaW5zIGEgY29ubmVjdGlvbiB0byB3aXJlbGVzcyBuZXR3b3Jr IHdpdGgKaWQgSUQuIgogIChmdW5jYWxsIGVud2Mtd2lyZWxlc3MtY29ubmVjdC1mdW5jIGlkKSkK CihkZWZ1biBlbndjLXdpcmVsZXNzLWRpc2Nvbm5lY3QgKCkKICAiRGlzY29ubmVjdHMgdGhlIHdp cmVsZXNzLiIKICAoZnVuY2FsbCBlbndjLXdpcmVsZXNzLWRpc2Nvbm5lY3QtZnVuYykpCgooZGVm dW4gZW53Yy13aXJlZC1jb25uZWN0IChpZCkKICAiQ29ubmVjdHMgdG8gdGhlIHdpcmVkIHByb2Zp bGUgd2l0aCBpZCBJRC4iCiAgKGZ1bmNhbGwgZW53Yy13aXJlZC1jb25uZWN0LWZ1bmMgaWQpKQoK KGRlZnVuIGVud2Mtd2lyZWQtZGlzY29ubmVjdCAoKQogICJEaXNjb25uZWN0cyBmcm9tIHRoZSBj dXJyZW50IG5ldHdvcmsuIgogIChmdW5jYWxsIGVud2Mtd2lyZWQtZGlzY29ubmVjdC1mdW5jKSkK CihkZWZ1biBlbndjLWlzLXdpcmVkICgpCiAgIkNoZWNrcyB3aGV0aGVyIG9yIG5vdCBFTldDIGlz IGNvbm5lY3RlZCB0bwphIHdpcmVkIG5ldHdvcmsuCk5vdGUgdGhhdCB0aGlzIGlzIE5PVCB0aGUg c2FtZSBhcyBgZW53Yy11c2luZy13aXJlZCcuClRoaXMgY2hlY2tzIGZvciBhbiBhY3RpdmUgd2ly ZWQgY29ubmVjdGlvbi4iCiAgKGZ1bmNhbGwgZW53Yy1pcy13aXJlZC1mdW5jKSkKCihkZWZ1biBl bndjLWdldC1zZWMtdHlwZXMgKHdpcmVkKQogICJHZXRzIHRoZSBzZWN1cml0eSB0eXBlcyBmb3Ig bmV0d29yay4KV0lSRUQgaXMgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMK YSB3aXJlZCBuZXR3b3JrLiIKICAoZnVuY2FsbCBlbndjLWdldC1zZWMtdHlwZXMtZnVuYyB3aXJl ZCkpCgooZGVmdW4gZW53Yy1nZXQtbmV0d29yay1lbnQgKHdpcmVkIGlkIGVudCkKICAiR2V0cyBu ZXR3b3JrIGVudHJ5IEVOVCBmcm9tIHRoZSBuZXR3b3JrIHdpdGggbmV0d29yayBpZCBJRC4KV0lS RUQgaXMgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMKYSB3aXJlZCBuZXR3 b3JrLiIKICAoaWYgd2lyZWQKICAgICAgbmlsCiAgICAoZW53Yy1nZXQtd2lyZWxlc3MtbnctcHJv cCBpZCBlbnQpKSkKCihkZWZ1biBlbndjLWdldC13aXJlZC1udy1wcm9wIChpZCBwcm9wKQogICJH ZXRzIG5ldHdvcmsgcHJvcGVydHkgUFJPUCBmcm9tCiB0aGUgd2lyZWQgbmV0d29yayB3aXRoIG5l dHdvcmsgaWQgSUQuIgogIChmdW5jYWxsIGVud2MtZ2V0LXdpcmVkLW53LXByb3AtZnVuYyBpZCBw cm9wKSkKCihkZWZ1biBlbndjLWdldC1pcC1hZGRyICh3aXJlZCBpZCkKICAiR2V0cyB0aGUgSVAg QWRkcmVzcyBmcm9tIHRoZSBuZXR3b3JrIHdpdGggbmV0d29yayBpZCBJRC4KV0lSRUQgaXMgc2V0 IHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMKYSB3aXJlZCBuZXR3b3JrLiIKICAo ZnVuY2FsbCBlbndjLWdldC1pcC1hZGRyLWZ1bmMgd2lyZWQgaWQpKQoKKGRlZnVuIGVud2MtZ2V0 LW5ldG1hc2sgKHdpcmVkIGlkKQogICJHZXRzIHRoZSBOZXRtYXNrIGZyb20gdGhlIG5ldHdvcmsg d2l0aCBuZXR3b3JrIGlkIElELgpXSVJFRCBpcyBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciBvciBu b3QgdGhpcyBpcwphIHdpcmVkIG5ldHdvcmsuIgogIChmdW5jYWxsIGVud2MtZ2V0LW5ldG1hc2st ZnVuYyB3aXJlZCBpZCkpCgooZGVmdW4gZW53Yy1nZXQtZ2F0ZXdheSAod2lyZWQgaWQpCiAgIkdl dHMgdGhlIEdhdGV3YXkgZnJvbSB0aGUgbmV0d29yayB3aXRoIG5ldHdvcmsgaWQgSUQuCldJUkVE IGlzIHNldCB0byBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCB0aGlzIGlzCmEgd2lyZWQgbmV0d29y ay4iCiAgKGZ1bmNhbGwgZW53Yy1nZXQtZ2F0ZXdheS1mdW5jIHdpcmVkIGlkKSkKCihkZWZ1biBl bndjLWdldC1kbnMgKHdpcmVkIGlkKQogICJHZXRzIHRoZSBETlMgU2VydmVycyBmcm9tIHRoZSBu ZXR3b3JrIHdpdGggbmV0d29yayBpZCBJRC4KV0lSRUQgaXMgc2V0IHRvIGluZGljYXRlIHdoZXRo ZXIgb3Igbm90IHRoaXMgaXMKYSB3aXJlZCBuZXR3b3JrLiIKICAoZnVuY2FsbCBlbndjLWdldC1k bnMtZnVuYyB3aXJlZCBpZCkpCgooZGVmdW4gZW53Yy1zYXZlLW53LXNldHRpbmdzICh3aXJlZCBp ZCBzZXR0aW5ncykKICAiU2F2ZXMgbmV0d29yayBzZXR0aW5ncyBTRVRUSU5HUyB0byB0aGUgbmV0 d29yayBwcm9maWxlIHdpdGgKbmV0d29yayBpZCBJRC4KU0VUVElOR1MgaXMgYW4gYXNzb2NpYXRp b24gbGlzdCB3aXRoIGVudHJpZXMgZm9yIHRoZSBJUCBBZGRyZXNzLApOZXRtYXNrLCBHYXRld2F5 LCBETlMgU2VydmVycywgYW5kIFNlY3VyaXR5LgpXSVJFRCBpcyBzZXQgdG8gaW5kaWNhdGUgd2hl dGhlciBvciBub3QgdGhpcyBpcwphIHdpcmVkIG5ldHdvcmsuIgogIChmdW5jYWxsIGVud2Mtc2F2 ZS1udy1zZXR0aW5ncy1mdW5jIHdpcmVkIGlkIHNldHRpbmdzKSkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Owo7OyBBY3R1YWwgRnVuY3Rpb25zCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwoKKGRlZnVuIGVu d2MtaXMtdmFsaWQtbnctaWQgKGlkKQogICJDb25maXJtcyB0aGF0IElEIGlzIGEgdmFsaWQgbmV0 d29yayBpZC4iCiAgKDw9IDAgaWQpKQoKKGRlZnVuIGVud2MtZ2V0LW53LXByb3AgKHdpcmVkIGlk IHByb3ApCiAgIlNtYWxsIGZ1bmN0aW9uIHRvIGdldCBuZXR3b3JrIHByb3BlcnR5IFBST1AgZnJv bSB0aGUgbmV0d29yawp3aXRoIG5ldHdvcmsgaWQgSUQuCldJUkVEIGluZGljYXRlcyB3aGV0aGVy IG9yIG5vdCB0aGlzIGlzIGEgd2lyZWQgY29ubmVjdGlvbi4iCiAgKGlmIHdpcmVkCiAgICAgIChl bndjLWdldC13aXJlZC1udy1wcm9wIGlkIHByb3ApCiAgICAoZW53Yy1nZXQtd2lyZWxlc3Mtbnct cHJvcCBpZCBwcm9wKSkpCgooZGVmdW4gZW53Yy11cGRhdGUtbW9kZS1saW5lICgpCiAgIlVwZGF0 ZXMgdGhlIG1vZGUgbGluZSB3aXRoIHRoZSBjdXJyZW50IG5ldHdvcmsgc3RyZW5ndGguCklmIG5v IG5ldHdvcmsgaXMgY29ubmVjdGVkLCB0aGVuIHByaW50cyAwJS4KSWYgd2lyZWQgaXMgYWN0aXZl LCB0aGVuIHByaW50cyAxMDAlLgpJZiBFTldDIGlzIGluIHRoZSBwcm9jZXNzIG9mIGNvbm5lY3Rp bmcsIHRoZW4gcHJpbnRzIColLgpUaGlzIGlzIGluaXRpYXRlZCBkdXJpbmcgc2V0dXAsIGFuZCBy dW5zIG9uY2UgZXZlcnkgc2Vjb25kLiIKIChsZXQgKChjdXItaWQgKGVud2MtZ2V0LWN1cnJlbnQt bnctaWQpKQoJKGNvbm4gKGVud2MtY2hlY2stY29ubmVjdGluZykpCglzdHIpCiAgICAoc2V0cSBz dHIKCSAgKGlmIChlbndjLWlzLXdpcmVkKQoJICAgICAgMTAwCgkgICAgKGlmIChlbndjLWlzLXZh bGlkLW53LWlkIGN1ci1pZCkKCQkoY2RyIChhc3NvYyAicXVhbGl0eSIgKG50aCBjdXItaWQgZW53 Yy1sYXN0LXNjYW4pKSkKCSAgICAgIDApKSkKICAgIChzZXRxIGVud2MtZGlzcGxheS1zdHJpbmcg KGNvbmNhdCAiIFsiCgkJCQkgICAgICAoaWYgY29ubgoJCQkJCSAgIioiCgkJCQkJKG51bWJlci10 by1zdHJpbmcgc3RyKSkKCQkJCSAgICAgICIlXSAiKSkpKQoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7 IFNjYW4gaW50ZXJuYWwKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7CgooZGVmdW4gZW53Yy1zY2FuLWludGVy bmFsLXdpcmVsZXNzICgpCiAgIlRoZSBhY3R1YWwgc2Nhbm5pbmcgcm91dGluZS4gIFNjYW5zIHRo ZSBuZXR3b3JrcyB1c2luZyBELUJVUywKYW5kIHJldHVybnMgYSBsaXN0IG9mIGFzc29jaWF0aW9u IGxpc3RzIHRoYXQgcmVwcmVzZW50IHRoZQpuZXR3b3JrIHByb3BlcnRpZXMgb2YgZWFjaCBuZXR3 b3JrIGZvdW5kLiIKICAobWVzc2FnZSAiU2Nhbm5pbmcuLi4iKQogIChsZXQqICgoc2Nhbi1yZXQg KGVud2MtZG8tc2NhbikpCgkgKGVud2MtYWNjZXNzLXBvaW50cyAoZW53Yy1nZXQtbncpKQoJIChj dXItaWQgMCkKCSBuZXR3b3JrcykKICAgIChtZXNzYWdlICJTY2FubmluZy4uLiBEb25lIikKICAg IChzZXRxIGVud2MtZXNzaWQtd2lkdGggNSkKICAgIChtYXBjYXIgKGZ1bmN0aW9uIChsYW1iZGEg KHgpCgkJCShsZXQgKChyZXQtaXRtIChjb25zIChjb25zICJpZCIgY3VyLWlkKSBuaWwpKSkKCQkJ ICAoc2V0cSBjdXItaWQgKDErIGN1ci1pZCkpCgkJCSAgKGRvbGlzdCAoZGV0IGVud2MtZGV0YWls cy1saXN0KQoJCQkgICAgKGxldCogKChjdXItaXRlbSAoZW53Yy1nZXQtd2lyZWxlc3MtbnctcHJv cCB4IGRldCkpCgkJCQkgICAoaWRlbnQgKGVud2MtZGV0YWlsLXRvLWlkZW50IGRldCkpCgkJCQkg ICBwb3MtbGVuKQoJCQkgICAgICAoaWYgKHN0cmluZz0gaWRlbnQgImVzc2lkIikKCQkJCSAgKHBy b2duCgkJCQkgICAgKHNldHEgcG9zLWxlbiAobGVuZ3RoIGN1ci1pdGVtKSkKCQkJCSAgICAoc2V0 cSBlbndjLWVzc2lkLXdpZHRoCgkJCQkJICAobWF4IGVud2MtZXNzaWQtd2lkdGgKCQkJCQkgICAg ICAgcG9zLWxlbikpKSkKCQkJICAgICAgKHNldHEgcmV0LWl0bSAoYXBwZW5kIHJldC1pdG0KCQkJ CQkJICAgIChjb25zIChjb25zIGlkZW50CgkJCQkJCQkJY3VyLWl0ZW0pCgkJCQkJCQkgIG5pbCkp KSkpCgkJCSAgcmV0LWl0bSkpKQoJICAgIGVud2MtYWNjZXNzLXBvaW50cykpKQoKKGRlZnVuIGVu d2Mtc2Nhbi1pbnRlcm5hbC13aXJlZCAoKQogICJUaGUgc2Nhbm5pbmcgcm91dGluZSBmb3IgYSB3 aXJlZCBjb25uZWN0aW9uLgpUaGlzIGdldHMgdGhlIGxpc3Qgb2Ygd2lyZWQgbmV0d29yayBwcm9m aWxlcy4iCiAgKG1lc3NhZ2UgIlVwZGF0aW5nIFByb2ZpbGVzLi4uIikKICAobGV0ICgocHJvZnMg KGVud2MtZ2V0LXdpcmVkLXByb2ZpbGVzKSkpCiAgICAobWVzc2FnZSAiVXBkYXRpbmcgUHJvZmls ZXMuLi4gRG9uZSIpCiAgICAoc2V0cSBlbndjLWFjY2Vzcy1wb2ludHMgcHJvZnMpCiAgICAoc2V0 cSBlbndjLWxhc3Qtc2NhbiBwcm9mcykKICAgIHByb2ZzKSkKCihkZWZ1biBlbndjLXNjYW4taW50 ZXJuYWwgKCkKICAiVGhlIGVudHJ5IHBvaW50IGZvciB0aGUgaW50ZXJuYWwgc2NhbiByb3V0aW5l cy4KVGhpcyBjaGVja3Mgd2hldGhlciBvciBub3Qgd2lyZWQgaXMgYmVpbmcgdXNlZCwKIGFuZCBy dW5zIHRoZSBhcHByb3ByaWF0ZSBmdW5jdGlvbi4iCiAgKGlmIGVud2MtdXNpbmctd2lyZWQKICAg ICAgKGVud2Mtc2Nhbi1pbnRlcm5hbC13aXJlZCkKICAgIChlbndjLXNjYW4taW50ZXJuYWwtd2ly ZWxlc3MpKSkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OyBEaXNwbGF5IE5ldHdvcmtzCjs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OwoKKGRlZnVuIGVud2MtZGlzcGxheS13aXJlZC1uZXR3b3JrcyAobmV0 d29ya3MpCiAgIkRpc3BsYXlzIHRoZSB3aXJlZCBuZXR3b3JrcyBzcGVjaWZpZWQgaW4gdGhlIGxp c3QgTkVUV09SS1MuCk5FVFdPUktTIG11c3QgYmUgaW4gdGhlIGZvcm0gcmV0dXJuZWQgZnJvbQpg ZW53Yy1zY2FuLWludGVybmFsLXdpcmVkJy4iCiAgKGlmIChub3QgKGxpc3RwIG5ldHdvcmtzKSkK ICAgICAgKGVycm9yICJORVRXT1JLUyBtdXN0IGJlIGEgbGlzdCBvZiBuZXR3b3Jrcy4iKSkKICAo bGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCiAgICAoZXJhc2UtYnVmZmVyKQogICAgKGluc2Vy dCAocHJvcGVydGl6ZSAiUHJvZmlsZSIgJ2ZhY2UgJ2Vud2MtaGVhZGVyLWZhY2UpKQogICAgKGlu c2VydCAiXG4iKQogICAgKGRvbGlzdCAocHIgbmV0d29ya3MpCiAgICAgIChpbnNlcnQgcHIpCiAg ICAgIChpbnNlcnQgIlxuIikpKSkKCihkZWZ1biBlbndjLWluc2VydC1lbnQgKGVudCB3aWR0aCkK ICAiU21hbGwgZnVuY3Rpb24gdG8gaW5zZXJ0IGEgbmV0d29yayBwcm9wZXJ0eSBlbnRyeS4KRU5U IGlzIHRoZSBlbnRyeSwgYW5kIFdJRFRIIGlzIHRoZSBjb2x1bW4gd2lkdGguIgogIChpbnNlcnQg ZW50KQogIChpbnNlcnQtY2hhciAzMiAoLSB3aWR0aCAobGVuZ3RoIGVudCkpKSkKCihkZWZ1biBl bndjLWRpc3BsYXktd2lyZWxlc3MtbmV0d29ya3MgKG5ldHdvcmtzKQogICJEaXNwbGF5cyB0aGUg bmV0d29ya3MgaW4gdGhlIGxpc3QgTkVUV09SS1MgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgpORVRX T1JLUyBtdXN0IGJlIGluIHRoZSBmb3JtYXQgcmV0dXJuZWQKIGJ5IGBlbndjLXNjYW4taW50ZXJu YWwtd2lyZWxlc3MnLiIKICAoaWYgKG5vdCAoZXEgbWFqb3ItbW9kZSAnZW53Yy1tb2RlKSkKCSAg IChlbndjLXNldHVwLWJ1ZmZlcikpCiAgKGlmIChub3QgKGxpc3RwIG5ldHdvcmtzKSkKICAgICAg KGVycm9yICJORVRXT1JLUyBtdXN0IGJlIGEgbGlzdCBvZiBhc3NvY2lhdGlvbiBsaXN0cy4iKSkK ICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkKCShjdXItaWQgKGVud2MtZ2V0LWN1cnJlbnQt bnctaWQpKSkKICAgIChlcmFzZS1idWZmZXIpCiAgICAobGV0ICgoaGVhZGVyIGVud2Mtd2lyZWxl c3MtaGVhZGVycykKCSAgKHBvcyAwKSkKCiAgICAgIChkb2xpc3QgKGhkIGhlYWRlcikKCShpbnNl cnQgKHByb3BlcnRpemUgaGQgJ2ZhY2UgJ2Vud2MtaGVhZGVyLWZhY2UpKQoJKHNldHEgcG9zIChs ZW5ndGggaGQpKQoJKGluc2VydC1jaGFyIDMyICgtIChzeW1ib2wtdmFsdWUgKGludGVybiAoY29u Y2F0ICJlbndjLSIKCQkJCQkJCSAoZG93bmNhc2UgaGQpCgkJCQkJCQkgIi13aWR0aCIpKSkKCQkJ ICAgcG9zKSkpKQogICAgKGluc2VydCAiXG4iKQoKICAgIChkb2xpc3QgKG53IG5ldHdvcmtzKQog ICAgICAobGV0KiAoKGlkIChwcm9wZXJ0aXplIChudW1iZXItdG8tc3RyaW5nIChjZHIgKGFzc29j ICJpZCIgbncpKSkKCQkJICAgICAnd2lkdGggZW53Yy1pZC13aWR0aCkpCgkgICAgIChzdHIgKHBy b3BlcnRpemUgKGNvbmNhdCAobnVtYmVyLXRvLXN0cmluZyAoY2RyIChhc3NvYyAicXVhbGl0eSIK CQkJCQkJCQkgICAgbncpKSkKCQkJCSAgICAgICIlIikKCQkJICAgICAgJ3dpZHRoIGVud2Mtc3Ry LXdpZHRoKSkKCSAgICAgKGVzc2lkIChwcm9wZXJ0aXplIChjZHIgKGFzc29jICJlc3NpZCIgbncp KQoJCQkJJ3dpZHRoIGVud2MtZXNzaWQtd2lkdGgpKQoJICAgICAoaGFzLWVuYyAoY2RyIChhc3Nv YyAiZW5jcnlwdGlvbiIgbncpKSkKCSAgICAgKGJzc2lkIChwcm9wZXJ0aXplIChjZHIgKGFzc29j ICJic3NpZCIgbncpKQoJCQkJJ3dpZHRoIGVud2MtYnNzaWQtd2lkdGgpKQoJICAgICAobW9kZSAo cHJvcGVydGl6ZSAoY2RyIChhc3NvYyAibW9kZSIgbncpKQoJCQkgICAgICAgJ3dpZHRoIGVud2Mt bW9kZS13aWR0aCkpCgkgICAgIChjaG5sIChwcm9wZXJ0aXplIChjZHIgKGFzc29jICJjaGFubmVs IiBudykpCgkJCSAgICAgICAnd2lkdGggZW53Yy1jaG5sLXdpZHRoKSkKCSAgICAgZW5jcnlwdCBw cm9wcykKCgkoc2V0cSBlbmNyeXB0CgkgICAgICAoaWYgaGFzLWVuYwoJCSAgKGVud2MtZ2V0LWVu Y3J5cHRpb24tdHlwZSAoc3RyaW5nLXRvLW51bWJlciBpZCkpCgkJIlVuc2VjdXJlZCIpKQoKCShz ZXRxIGVuY3J5cHQgKHByb3BlcnRpemUgZW5jcnlwdCAnd2lkdGggZW53Yy1lbmNyeXB0LXdpZHRo KSkKCShzZXRxIHByb3BzIChsaXN0IGlkIHN0ciBlc3NpZCBlbmNyeXB0IGJzc2lkIG1vZGUgY2hu bCkpCgoJKGRvbGlzdCAoZW50IHByb3BzKQoJICAoaWYgKGVxIChzdHJpbmctdG8tbnVtYmVyIGlk KSBjdXItaWQpCgkgICAgICAoc2V0cSBlbnQgKHByb3BlcnRpemUgZW50ICdmYWNlICdlbndjLWNv bm5lY3RlZC1mYWNlKSkpCgkgIChlbndjLWluc2VydC1lbnQgZW50IChnZXQtdGV4dC1wcm9wZXJ0 eSAwICd3aWR0aCBlbnQpKSkKCShpbnNlcnQgIlxuIikpKSkpCgooZGVmdW4gZW53Yy1kaXNwbGF5 LW5ldHdvcmtzIChuZXR3b3JrcykKICAiRGlzcGxheXMgdGhlIG5ldHdvcmsgaW4gTkVUV09SS1Mu ICBUaGlzIGlzIGFuIGVudHJ5IHRvIHRoZSBkaXNwbGF5CmZ1bmN0aW9ucywgYW5kIGNoZWNrcyB3 aGV0aGVyIG9yIG5vdCBFTldDIGlzIHVzaW5nIHdpcmVkLiIKICAoaWYgKG5vdCAoZXEgbWFqb3It bW9kZSAnZW53Yy1tb2RlKSkKICAgICAgKGVud2Mtc2V0dXAtYnVmZmVyKSkKICAoaWYgKG5vdCAo bGlzdHAgbmV0d29ya3MpKQogICAgICAoZXJyb3IgIk5FVFdPUktTIG11c3QgYmUgYSBsaXN0LiIp KQogIChpZiBlbndjLXVzaW5nLXdpcmVkCiAgICAgIChlbndjLWRpc3BsYXktd2lyZWQtbmV0d29y a3MgbmV0d29ya3MpCiAgICAoZW53Yy1kaXNwbGF5LXdpcmVsZXNzLW5ldHdvcmtzIG5ldHdvcmtz KSkpCgooZGVmdW4gZW53Yy1zY2FuICgpCiAgIlRoZSBmcm9udGVuZCBvZiB0aGUgc2Nhbm5pbmcg cm91dGluZS4gIFNldHMgdXAgYW5kIG1vdmVzIHRvCnRoZSBFTldDIGJ1ZmZlciBpZiBuZWNlc3Nh cnksIGFuZCBzY2FucyBhbmQgZGlzcGxheXMgdGhlIG5ldHdvcmtzLiIKICAoaW50ZXJhY3RpdmUp CiAgKGlmIChub3QgKGVxIG1ham9yLW1vZGUgJ2Vud2MtbW9kZSkpCiAgICAgIChzd2l0Y2gtdG8t YnVmZmVyICIqRU5XQyoiKSkKICAoc2V0cSBlbndjLWxhc3Qtc2NhbiAoZW53Yy1zY2FuLWludGVy bmFsKSkKICAoc2V0cSBlbndjLWVzc2lkLXdpZHRoICgxKyBlbndjLWVzc2lkLXdpZHRoKSkKICAo ZW53Yy1kaXNwbGF5LW5ldHdvcmtzIGVud2MtbGFzdC1zY2FuKQogIChnb3RvLWNoYXIgMCkKICAo Zm9yd2FyZC1saW5lKSkKICAKKGRlZnVuIGVud2MtZmluZC1uZXR3b3JrIChlc3NpZCAmb3B0aW9u YWwgbmV0d29ya3MpCiAgIkNoZWNrcyB0aHJvdWdoIE5FVFdPUktTIGZvciB0aGUgbmV0d29yayB3 aXRoIGVzc2lkIEVTU0lELAphbmQgcmV0dXJucyB0aGUgbmV0d29yayBpZGVudGlmaWVyLiAgVXNl cyBgZW53Yy1sYXN0LXNjYW4nIGlmCk5FVFdPUktTIGlzIG5pbC4gIElmIHRoZSBuZXR3b3JrIGlz IG5vdCBmb3VuZCwgdGhlbiBpdCByZXR1cm5zIG5pbC4KCiAgIFdoZW4gY2FsbGVkIGludGVyYWN0 aXZlbHksIHRoaXMgb25seSBwcmludHMgb3V0IHdoYXQgaXQgZmluZHMuCk90aGVyd2lzZSwgaXQg YWN0dWFsbHkgcmV0dXJucyBpdC4iCiAgKGludGVyYWN0aXZlICJzTmV0d29yayBFU1NJRDogIikK ICAobGV0ICgobmV0cyAob3IgbmV0d29ya3MgZW53Yy1sYXN0LXNjYW4pKQoJbmVlZC1icmVhayBj dXItbmV0KQogICAgKGlmIChub3QgbmV0cykKCShzZXRxIG5ldHMgZW53Yy1sYXN0LXNjYW4pKQog ICAgKHdoaWxlIChhbmQgbmV0cyAobm90IG5lZWQtYnJlYWspKQogICAgICAobGV0IChjdXItZXNz aWQpCgkoc2V0cSBjdXItbmV0IChwb3AgbmV0cykpCgkoc2V0cSBjdXItZXNzaWQgKGNkciAoYXNz b2MgImVzc2lkIiBjdXItbmV0KSkpCgkoaWYgKHN0cmluZz0gY3VyLWVzc2lkIGVzc2lkKQoJICAg IChzZXRxIG5lZWQtYnJlYWsgdCkpKSkKICAgIChpZiBuZWVkLWJyZWFrCgkoaWYgKGNhbGxlZC1p bnRlcmFjdGl2ZWx5LXAgJ2FueSkKCSAgICAobWVzc2FnZSAobnVtYmVyLXRvLXN0cmluZyAoY2Ry IChhc3NvYyAiaWQiIGN1ci1uZXQpKSkpCgkgIChjZHIgKGFzc29jICJpZCIgY3VyLW5ldCkpKQog ICAgICAoaWYgKGNhbGxlZC1pbnRlcmFjdGl2ZWx5LXAgJ2FueSkKCSAgKG1lc3NhZ2UgIk5ldHdv cmsgbm90IGZvdW5kLiIpCgluaWwpKSkpCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OyBDb25uZWN0 IE5ldHdvcmsKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKCihkZWZ1biBlbndjLWNvbm5lY3QtbmV0d29y ayAoaWQpCiAgIkNvbm5lY3QgdG8gbmV0d29yayB3aXRoIGlkIElELgpUaGlzIGlzIGFuIGVudHJ5 IHBvaW50IGZvciB0aGUgaW50ZXJuYWwgY29ubmVjdGlvbiBmdW5jdGlvbnMsCmFuZCBjaGVja3Mg d2hldGhlciBvciBub3QgRU5XQyBpcyB1c2luZyB3aXJlZC4iCiAgKGxldCAoY3VyLW5ldCkKICAg IChpZiBlbndjLXVzaW5nLXdpcmVkCgkocHJvZ24KCSAgKGVud2Mtd2lyZWQtY29ubmVjdCBpZCkK CSAgKHNldHEgY3VyLW5ldCAobnRoIGlkIChlbndjLWdldC13aXJlZC1wcm9maWxlcykpKSkKICAg ICAgKGVud2Mtd2lyZWxlc3MtY29ubmVjdCBpZCkKICAgICAgKHNldHEgY3VyLW5ldCAoZW53Yy1n ZXQtd2lyZWxlc3MtbnctcHJvcCBpZCAiZXNzaWQiKSkpCiAgICBjdXItbmV0KSkKCihkZWZ1biBl bndjLWNvbm5lY3QtdG8tbmV0d29yayAobmV0LWlkKQogICJDb25uZWN0cyB0aGUgdGhlIG5ldHdv cmsgd2l0aCBuZXR3b3JrIGlkIE5FVC1JRC4gIENvbmZpcm1zCnRoYXQgTkVULUlEIGlzIGEgdmFs aWQgbmV0d29yayBpZC4KVGhpcyBjYWxscyBgZW53Yy1jb25uZWN0LW5ldHdvcmsnIGFzIGEgc3Vi cm91dGluZS4iCiAgKGludGVyYWN0aXZlICJuTmV0d29yayBJRDogIikKICAoaWYgKG5vdCAobnVt YmVycCBuZXQtaWQpKQogICAgICAoZXJyb3IgIk5FVC1JRCBtdXN0IGJlIGEgbnVtYmVyIikpCiAg KGxldCAoKG51bS1pZHMgKGxlbmd0aCBlbndjLWxhc3Qtc2NhbikpCgljdXItbmV0KQogICAgKGlm IChvciAoPCBuZXQtaWQgMCkgKD49IG5ldC1pZCBudW0taWRzKSkKCShlcnJvciAiSW52YWxpZCBu ZXR3b3JrIGlkLiIpKQogICAgKHNldHEgY3VyLW5ldCAoZW53Yy1jb25uZWN0LW5ldHdvcmsgbmV0 LWlkKSkKICAgIChtZXNzYWdlIChjb25jYXQgIkNvbm5lY3RpbmcgdG8gIiBjdXItbmV0KSkpKQoK KGRlZnVuIGVud2MtY29ubmVjdC10by1uZXR3b3JrLWVzc2lkIChlc3NpZCkKICAiQ29ubmVjdHMg dG8gdGhlIG5ldHdvcmsgd2l0aCBlc3NpZCBFU1NJRC4iCiAgKGludGVyYWN0aXZlICJzTmV0d29y ayBFU1NJRDogIikKICAobGV0ICgobmV0LWlkIChlbndjLWZpbmQtbmV0d29yayBlc3NpZCkpKQog ICAgKGlmIG5ldC1pZAoJKGVud2MtY29ubmVjdC10by1uZXR3b3JrIG5ldC1pZCkKICAgICAgKG1l c3NhZ2UgIk5ldHdvcmsgbm90IGZvdW5kLiIpKSkpCgooZGVmdW4gZW53Yy1jb25uZWN0LXRvLW5l dHdvcmstYXQtcG9pbnQgKCkKICAiQ29ubmVjdHMgdG8gdGhlIG5ldHdvcmsgYXQgdGhlIGN1cnJl bnQgbGluZSBudW1iZXIuCk1vdmVzIHRvIHRoZSBlbndjIGJ1ZmZlciBpZiBuZWNlc3NhcnkuIgog IChpbnRlcmFjdGl2ZSkKICAoaWYgKG5vdCAoZXEgbWFqb3ItbW9kZSAnZW53Yy1tb2RlKSkKICAg ICAgKGVud2Mtc2V0dXAtYnVmZmVyKSkKICAobGV0ICgoaWQgKC0gKGxpbmUtbnVtYmVyLWF0LXBv cykgMikpKQogICAgKGVud2MtY29ubmVjdC10by1uZXR3b3JrIGlkKSkpCgooZGVmdW4gZW53Yy1k aXNjb25uZWN0ICgpCiAgIkRpc2Nvbm5lY3RzIGZyb20gdGhlIG5ldHdvcmssIGlmIGFueS4iCiAg KGludGVyYWN0aXZlKQogIChpZiAobm90IChlcSBtYWpvci1tb2RlICdlbndjLW1vZGUpKQogICAg ICAoZW53Yy1zZXR1cC1idWZmZXIpKQogIChpZiBlbndjLXVzaW5nLXdpcmVkCiAgICAgIChlbndj LXdpcmVkLWRpc2Nvbm5lY3QpCiAgICAoZW53Yy13aXJlbGVzcy1kaXNjb25uZWN0KSkpCgooZGVm dW4gZW53Yy10b2dnbGUtd2lyZWQgKCkKICAiVG9nZ2xlIHRoZSBkaXNwbGF5IGFuZCBtb2RlIGJl dHdlZW4gd2lyZWxlc3MgYW5kIHdpcmVkLgpUaGlzIGZ1bmN0aW9uIGFsc28gc2V0cyB0aGUgdmFy aWFibGUgYGVud2MtdXNpbmctd2lyZWQnLiIKICAoaW50ZXJhY3RpdmUpCiAgKGlmIChub3QgKGVx IG1ham9yLW1vZGUgJ2Vud2MtbW9kZSkpCiAgICAgIChlbndjLXNldHVwLWJ1ZmZlcikpCiAgKGxl dCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQogICAgKGVyYXNlLWJ1ZmZlcikKICAgIChzZXRxIGVu d2MtdXNpbmctd2lyZWQgKG5vdCBlbndjLXVzaW5nLXdpcmVkKSkKICAgIChlbndjLXNjYW4pKSkK CihkZWZ1biBlbndjICgpCiAgIlRoZSBtYWluIGZyb250LWVuZC4gIFNldHMgdXAgdGhlIGJ1ZmZl ciBhbmQgc2NhbnMgdGhlIG5ldHdvcmtzLiIKICAoaW50ZXJhY3RpdmUpCiAgKGVud2Mtc2V0dXAt YnVmZmVyKQogIChlbndjLXNjYW4pKQoKOzsgU2V0dGluZ3MgZm9yIGFjY2VzcyBwb2ludCBBUAo7 Owo7OyBJUHY0IFNldHRpbmdzOgo7OyAgIEFkZHJlc3MgPQo7OyAgIE5ldG1hc2sgPQo7OyAgIEdh dGV3YXkgPQo7Owo7OyAgIEROUyAxICAgPQo7OyAgIEROUyAyICAgPQo7Owo7OyBTZWN1cml0eToK OzsgICBUeXBlICAgID0KOzsKCihkZWZ1biBlbndjLWVkaXQtdmlldy1lbnRyeSAoKQogICJWaWV3 IHRoZSB0ZXh0IG9mIHRoZSBlbnRyeSBhdCBwb2ludC4KVGhpcyBpcyBtb3N0bHkgdXNlZnVsIHRv IHZpZXcgdGhlIHRleHQgb2YgdGhlIGhpZGRlbiBlbnRyaWVzLiIKICAoaW50ZXJhY3RpdmUpCiAg KGlmIChub3QgKGdldC1idWZmZXIgIipFTldDIEVkaXQqIikpCiAgICAgIChlcnJvciAiTm90IGVk aXRpbmcgYSBuZXR3b3JrIGVudHJ5LiIpKQogIChpZiAobm90IChlcSAoY3VycmVudC1idWZmZXIp IChnZXQtYnVmZmVyICIqRU5XQyBFZGl0KiIpKSkKICAgICAgKHN3aXRjaC10by1idWZmZXIgIipF TldDIEVkaXQqIikpCiAgKGlmIChub3QgKHdpZGdldC1hdCkpCiAgICAgIChlcnJvciAiTm8gd2lk Z2V0IGF0IHBvaW50IikpCiAgKG1lc3NhZ2UgKHdpZGdldC1maWVsZC12YWx1ZS1nZXQgKHdpZGdl dC1hdCkpKSkKCihkZWZ1biBlbndjLWRpc3BsYXktc2VjLXJlcXMgKHdpZGdldCAmcmVzdCBzdHVm ZikKICAiRGlzcGxheSB0aGUgc2VjdXJpdHkgcmVxdWlyZW1lbnRzLgpUaGlzIGlzIGEgY2FsbGJh Y2sgdG8gdGhlIHNlY3VyaXR5IHNlbGVjdGlvbiB3aWRnZXQuCldJREdFVCBpcyBhbHdheXMgdGhl IG1lbnUgZHJvcC1kb3duIG9mIHNlY3VyaXR5IHR5cGVzLiIKICAobGV0IChyZXFzCgkoaW5oaWJp dC1yZWFkLW9ubHkgdCkKCXR5cGUtd2lkLWxpc3QpCiAgICA7OyBGaXJzdCwgZXJhc2UgYW55IG9m IHRoZSBvbGQgb25lcy4KICAgIChnb3RvLWNoYXIgKDErICh3aWRnZXQtZ2V0IHdpZGdldCA6dG8p KSkKICAgICh3aWRnZXQtZm9yd2FyZCAxKQogICAgKHdoaWxlICg+PSAocG9pbnQpICh3aWRnZXQt Z2V0IHdpZGdldCA6dG8pKQogICAgICAod2lkZ2V0LWRlbGV0ZSAod2lkZ2V0LWF0KSkKICAgICAg KHdpZGdldC1mb3J3YXJkIDEpKQogICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKICAgIDs7IFRo ZW4gY2hlY2sgdG8gc2VlIGlmIHdpZGdldC12YWx1ZSBpcyBOb25lCiAgICAoaWYgKHN0cmluZz0g KHdpZGdldC12YWx1ZSB3aWRnZXQpICJOb25lIikKCW5pbAogICAgICAoc2V0cSB0eXBlLXdpZC1s aXN0CgkgICAgKGNhZHIgKGFzc29jICJyZXFzIgoJCQkgKGNkciAoYXNzb2MgKHdpZGdldC12YWx1 ZSB3aWRnZXQpCgkJCQkgICAgIChlbndjLWdldC1zZWMtdHlwZXMgZW53Yy11c2luZy13aXJlZCkp KSkpKQogICAgICAoc2V0cSByZXFzCgkgICAgKG1hcGNhciAobGFtYmRhICh4KQoJCSAgICAgIChp ZiAobm90IChlcSAobGVuZ3RoIChjZHIgeCkpIDApKQoJCQkgICh3aWRnZXQtY3JlYXRlICdlZGl0 YWJsZS1maWVsZAoJCQkJCSA6Zm9ybWF0IChjb25jYXQgIiAgIgoJCQkJCQkJIChjZHIgeCkKCQkJ CQkJCSAiOiAldiIpCgkJCQkJIDpzZWNyZXQgPyoKCQkJCQkgOmtleW1hcCAnZW53Yy1lZGl0LWZp ZWxkLW1hcAoJCQkJCSA6dmFsdWUgKG9yIChlbndjLWdldC1udy1wcm9wIGVud2MtdXNpbmctd2ly ZWQKCQkJCQkJCQkgICAgICBlbndjLWVkaXQtaWQKCQkJCQkJCQkgICAgICAoY2FyIHgpKQoJCQkJ CQkgICAgIiIpKSkpCgkJICAgIHR5cGUtd2lkLWxpc3QpKQogICAgICAod2lkZ2V0LXNldHVwKQog ICAgICByZXFzKSkpCgooZGVmdW4gZW53Yy1zZXR1cC1lZGl0LWJ1ZmZlciAoKQogICJTZXR1cCB0 aGUgZWRpdCBidWZmZXIuICBUaGlzIHJlbW92ZXMgdGhlIG9sZCBvbmUgaWYgbmVjY2Vzc2FyeSwK YW5kIHJlZGlzcGxheXMgdGhlIHNldHRpbmdzIGZyb20gdGhlIG5ldHdvcmsgcHJvZmlsZQogd2l0 aCBpZCBgZW53Yy1lZGl0LWlkJywgd2hpY2ggaXMgc2V0IGluIGBlbndjLWVkaXQtZW50cnktYXQt cG9pbnQnLiIKICAoaWYgKGdldC1idWZmZXIgIipFTldDIEVkaXQqIikKICAgICAgKGtpbGwtYnVm ZmVyICIqRU5XQyBFZGl0KiIpKQogICh3aXRoLWN1cnJlbnQtYnVmZmVyIChnZXQtYnVmZmVyLWNy ZWF0ZSAiKkVOV0MgRWRpdCoiKQogICAgKGxldCAoKHNlYy10eXBlcyAoZW53Yy1nZXQtc2VjLXR5 cGVzIGVud2MtdXNpbmctd2lyZWQpKQoJICBhZGRyLXdpZCBuZXQtd2lkIGdhdGUtd2lkCgkgIGRu cy0xLXdpZCBkbnMtMi13aWQgZG5zLWxpc3QKCSAgdHlwZS13aWQgdHlwZS13aWQtbGlzdCkKCiAg ICAgICh3aWRnZXQtaW5zZXJ0IChjb25jYXQgIlNldHRpbmdzIGZvciBhY2Nlc3MgcG9pbnQgIgoJ CQkgICAgIChjZHIgKGFzc29jICJlc3NpZCIKCQkJCQkgKG50aCBlbndjLWVkaXQtaWQKCQkJCQkg ICAgICBlbndjLWxhc3Qtc2NhbikpKQoJCQkgICAgICJcbiIpKQogICAgICAod2lkZ2V0LWluc2Vy dCAiXG4iKQogICAgICAod2lkZ2V0LWluc2VydCAiSVB2NCBTZXR0aW5nczpcbiIpCiAgICAgIChz ZXRxIGFkZHItd2lkICh3aWRnZXQtY3JlYXRlICdlZGl0YWJsZS1maWVsZAoJCQkJICAgIDpmb3Jt YXQgIiAgQWRkcmVzczogJXYiCgkJCQkgICAgOnZhbHVlIChlbndjLWdldC1pcC1hZGRyIGVud2Mt dXNpbmctd2lyZWQKCQkJCQkJCSAgICAgZW53Yy1lZGl0LWlkKSkpCiAgICAgIDs7aXAKICAgICAg KHNldHEgbmV0LXdpZCAod2lkZ2V0LWNyZWF0ZSAnZWRpdGFibGUtZmllbGQKCQkJCSAgIDpmb3Jt YXQgIiAgTmV0bWFzazogJXYiCgkJCQkgICA6dmFsdWUgKGVud2MtZ2V0LW5ldG1hc2sgZW53Yy11 c2luZy13aXJlZAoJCQkJCQkJICAgIGVud2MtZWRpdC1pZCkpKQogICAgICA7O25ldG1hc2sKICAg ICAgKHNldHEgZ2F0ZS13aWQgKHdpZGdldC1jcmVhdGUgJ2VkaXRhYmxlLWZpZWxkCgkJCQkgICAg OmZvcm1hdCAiICBHYXRld2F5OiAldiIKCQkJCSAgICA6dmFsdWUgKGVud2MtZ2V0LWdhdGV3YXkg ZW53Yy11c2luZy13aXJlZAoJCQkJCQkJICAgICBlbndjLWVkaXQtaWQpKSkKICAgICAgOztnYXRl d2F5CiAgICAgICh3aWRnZXQtaW5zZXJ0ICJcbiIpCiAgICAgIChzZXRxIGRucy1saXN0IChlbndj LWdldC1kbnMgZW53Yy11c2luZy13aXJlZCBlbndjLWVkaXQtaWQpKQogICAgICAoc2V0cSBkbnMt MS13aWQgKHdpZGdldC1jcmVhdGUgJ2VkaXRhYmxlLWZpZWxkCgkJCQkgICAgIDpmb3JtYXQgIiAg ICBETlMgMTogJXYiCgkJCQkgICAgIDp2YWx1ZSAobnRoIDAgZG5zLWxpc3QpKSkKICAgICAgOztk bnMxCiAgICAgIChzZXRxIGRucy0yLXdpZCAod2lkZ2V0LWNyZWF0ZSAnZWRpdGFibGUtZmllbGQK CQkJCSAgICAgOmZvcm1hdCAiICAgIEROUyAyOiAldiIKCQkJCSAgICAgOnZhbHVlIChudGggMSBk bnMtbGlzdCkpKQogICAgICA7O2RuczIKICAgICAgKHdpZGdldC1pbnNlcnQgIlxuIikKICAgICAg KHdpZGdldC1pbnNlcnQgIlNlY3VyaXR5OlxuIikKICAgICAgKHNldHEgdHlwZS13aWQgKGFwcGx5 ICd3aWRnZXQtY3JlYXRlCiAgICAgIAkJCSAgICAnbWVudS1jaG9pY2UKICAgICAgIAkJCSAgICA6 dGFnICJUeXBlICIKCQkJICAgIDp2YWx1ZSAoZW53Yy1nZXQtbnctcHJvcCBlbndjLXVzaW5nLXdp cmVkCgkJCQkJCSAgICAgZW53Yy1lZGl0LWlkCgkJCQkJCSAgICAgImVuY3R5cGUiKQoJCQkgICAg Om5vdGlmeSAnZW53Yy1kaXNwbGF5LXNlYy1yZXFzCiAgICAgICAJCQkgICAgJyhpdGVtIDp0YWcg Ik5vIEVuY3J5cHRpb24iCgkJCQkgICA6dmFsdWUgIk5vbmUiKQoJCQkgICAgKG1hcGNhciAobGFt YmRhICh4KQoJCQkJICAgICAgYChpdGVtIDpmb3JtYXQgIiV0XG4iCgkJCQkJICAgICA6dmFsdWUg LChjYXIgeCkKCQkJCQkgICAgIDp0YWcgLChjZHIgKGFzc29jICJOYW1lIiAoY2RyIHgpKSkpKQog ICAgICAgCQkJICAgICAJICAgIHNlYy10eXBlcykpKQogICAgICAoZW53Yy1kaXNwbGF5LXNlYy1y ZXFzIHR5cGUtd2lkKQogICAgICAodXNlLWxvY2FsLW1hcCBlbndjLWVkaXQtbWFwKQogICAgICAo d2lkZ2V0LXNldHVwKSkpCgogIChzd2l0Y2gtdG8tYnVmZmVyICIqRU5XQyBFZGl0KiIpKQoKKGRl ZnVuIGVud2MtZWRpdC1zYXZlICgpCiAgIlNhdmUgdGhlIG5ldHdvcmsgc2V0dGluZ3MuIgogIDs7 IEJhc2ljYWxseSwganVzdCBpdGVyYXRlIHRocm91Z2ggdGhlIHdpZGdldHMsCiAgOzsgcmV0cmll dmluZyB2YWx1ZXMgZnJvbSBlYWNoLgogIChpbnRlcmFjdGl2ZSkKICAoaWYgKG5vdCAoZ2V0LWJ1 ZmZlciAiKkVOV0MgRWRpdCoiKSkKICAgICAgKGVycm9yICJOb3QgZWRpdGluZyBhIG5ldHdvcmsg ZW50cnkuIikpCiAgKGlmIChub3QgKGVxIChjdXJyZW50LWJ1ZmZlcikgKGdldC1idWZmZXIgIipF TldDIEVkaXQqIikpKQogICAgICAoc3dpdGNoLXRvLWJ1ZmZlciAiKkVOV0MgRWRpdCoiKSkKICAo Z290by1jaGFyIDApCiAgKGxldCAoc2V0dGluZ3Mgc3RhcnQtcG9zIHR5cGUtd2lkLWxpc3QpCgog ICAgKHdpZGdldC1mb3J3YXJkIDEpCiAgICAoc2V0cSBzZXR0aW5ncwoJICAoYXBwZW5kIHNldHRp bmdzCgkJICAoY29ucyAoY29ucyAiYWRkciIKCQkJICAgICAgKHdpZGdldC1maWVsZC12YWx1ZS1n ZXQgKHdpZGdldC1hdCkpKQoJCQluaWwpKSkKICAgICh3aWRnZXQtZm9yd2FyZCAxKQogICAgKHNl dHEgc2V0dGluZ3MKCSAgKGFwcGVuZCBzZXR0aW5ncwoJCSAgKGNvbnMgKGNvbnMgIm5ldG1hc2si CgkJCSAgICAgICh3aWRnZXQtZmllbGQtdmFsdWUtZ2V0ICh3aWRnZXQtYXQpKSkKCQkJbmlsKSkp CiAgICAod2lkZ2V0LWZvcndhcmQgMSkKICAgIChzZXRxIHNldHRpbmdzCgkgIChhcHBlbmQgc2V0 dGluZ3MKCQkgIChjb25zIChjb25zICJnYXRld2F5IgoJCQkgICAgICAod2lkZ2V0LWZpZWxkLXZh bHVlLWdldCAod2lkZ2V0LWF0KSkpCgkJCW5pbCkpKQogICAgKHdpZGdldC1mb3J3YXJkIDEpCiAg ICAoc2V0cSBzZXR0aW5ncwoJICAoYXBwZW5kIHNldHRpbmdzCgkJICAoY29ucyAoY29ucyAiZG5z MSIKCQkJICAgICAgKHdpZGdldC1maWVsZC12YWx1ZS1nZXQgKHdpZGdldC1hdCkpKQoJCQluaWwp KSkKICAgICh3aWRnZXQtZm9yd2FyZCAxKQogICAgKHNldHEgc2V0dGluZ3MKCSAgKGFwcGVuZCBz ZXR0aW5ncwoJCSAgKGNvbnMgKGNvbnMgImRuczIiCgkJCSAgICAgICh3aWRnZXQtZmllbGQtdmFs dWUtZ2V0ICh3aWRnZXQtYXQpKSkKCQkJbmlsKSkpCiAgICAod2lkZ2V0LWZvcndhcmQgMSkKICAg IChzZXRxIHNldHRpbmdzCgkgIChhcHBlbmQgc2V0dGluZ3MKCQkgIChjb25zIChjb25zICJlbmN0 eXBlIgoJCQkgICAgICAod2lkZ2V0LXZhbHVlICh3aWRnZXQtYXQpKSkKCQkJbmlsKSkpCiAgICAo c2V0cSBzdGFydC1wb3MgKHdpZGdldC1nZXQgKHdpZGdldC1hdCkgOnRvKSkKICAgIChpZiAobm90 IChzdHJpbmc9ICh3aWRnZXQtdmFsdWUgKHdpZGdldC1hdCkpICJOb25lIikpCgkoc2V0cSB0eXBl LXdpZC1saXN0CgkgICAgICAoY2FkciAoYXNzb2MgInJlcXMiCgkJCSAgIChjZHIgKGFzc29jICh3 aWRnZXQtdmFsdWUgKHdpZGdldC1hdCkpCgkJCQkgICAgICAgKGVud2MtZ2V0LXNlYy10eXBlcyBl bndjLXVzaW5nLXdpcmVkKSkpKSkpKQogICAgKGRvbGlzdCAoeCB0eXBlLXdpZC1saXN0KQogICAg ICAod2lkZ2V0LWZvcndhcmQgMSkKICAgICAgKHNldHEgc2V0dGluZ3MKCSAgICAoYXBwZW5kIHNl dHRpbmdzCgkJICAgIChjb25zIChjb25zIChjYXIgeCkKCQkJCSh3aWRnZXQtZmllbGQtdmFsdWUt Z2V0ICh3aWRnZXQtYXQpKSkKCQkJICBuaWwpKSkpCgogICAgKGVud2Mtc2F2ZS1udy1zZXR0aW5n cyBlbndjLXVzaW5nLXdpcmVkIGVud2MtZWRpdC1pZCBzZXR0aW5ncykpKQoKKGRlZnVuIGVud2Mt ZWRpdC1lbnRyeS1hdC1wb2ludCAoKQogICJFZGl0IHRoZSBjdXJyZW50IG5ldHdvcmsgZW50cnku IgogIChpbnRlcmFjdGl2ZSkKICAoc2V0cSBlbndjLWVkaXQtaWQgKC0gKGxpbmUtbnVtYmVyLWF0 LXBvcykgMikpCiAgKHNlbGVjdC13aW5kb3cgKHNwbGl0LXdpbmRvdykpCiAgKGVud2Mtc2V0dXAt ZWRpdC1idWZmZXIpKQoKKGRlZnZhciBlbndjLW1vZGUtbWFwCiAgKGxldCAoKG1hcCAobWFrZS1z cGFyc2Uta2V5bWFwKSkpCiAgICAoZGVmaW5lLWtleSBtYXAgKGtiZCAiUiIpICdlbndjLXNjYW4p CiAgICAoZGVmaW5lLWtleSBtYXAgKGtiZCAiQyIpICdlbndjLWNvbm5lY3QtdG8tbmV0d29yay1l c3NpZCkKICAgIChkZWZpbmUta2V5IG1hcCAoa2JkICJEIikgJ2Vud2MtZGlzY29ubmVjdCkKICAg IChkZWZpbmUta2V5IG1hcCAoa2JkICJXIikgJ2Vud2MtdG9nZ2xlLXdpcmVkKQogICAgKGRlZmlu ZS1rZXkgbWFwIChrYmQgIkUiKSAnZW53Yy1lZGl0LWVudHJ5LWF0LXBvaW50KQogICAgKGRlZmlu ZS1rZXkgbWFwIChrYmQgIlJFVCIpICdlbndjLWNvbm5lY3QtdG8tbmV0d29yay1hdC1wb2ludCkK ICAgIG1hcCkKICAiVGhlIGtleW1hcCBmb3IgbmV0d29yayBkaXNwbGF5IGluIEVOV0MuIikKCihk ZWZ2YXIgZW53Yy1lZGl0LW1hcAogIChsZXQgKChtYXAgKGNvcHkta2V5bWFwIHdpZGdldC1rZXlt YXApKSkKICAgIChkZWZpbmUta2V5IG1hcCAoa2JkICJDLXggQy1zIikgJ2Vud2MtZWRpdC1zYXZl KQogICAgbWFwKQogICJUaGUga2V5bWFwIGZvciBlZGl0aW5nIG5ldHdvcmsgcHJvZmlsZXMgd2l0 aCBFTldDLiIpCgooZGVmdmFyIGVud2MtZWRpdC1maWVsZC1tYXAKICAobGV0ICgobWFwIChjb3B5 LWtleW1hcCB3aWRnZXQtZmllbGQta2V5bWFwKSkpCiAgICAoZGVmaW5lLWtleSBtYXAgKGtiZCAi Qy14IEMtYSIpICdlbndjLWVkaXQtdmlldy1lbnRyeSkKICAgIG1hcCkKICAiVGhlIGtleW1hcCBm b3IgZWRpdGFibGUgZmllbGRzIHdpdGhpbiB0aGUgRU5XQyBlZGl0IGJ1ZmZlci4iKQoKKGRlZnVu IGVud2Mtc2V0dXAtYnVmZmVyICgpCiAgIlNldHMgdXAgdGhlIEVOV0MgYnVmZmVyLiAgVGhpcyBm aXJzdCBjaGVja3MgdG8gc2VlIHRoYXQgaXQgZXhpc3RzLAphbmQgaWYgaXQgZG9lc24ndCwgdGhl biBjcmVhdGUgaXQuIgogIChpZiAobm90IChnZXQtYnVmZmVyICIqRU5XQyoiKSkKICAgICAgKHdp dGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqRU5XQyoiKQoJKHVzZS1sb2Nh bC1tYXAgZW53Yy1tb2RlLW1hcCkKCShzZXRxIG1ham9yLW1vZGUgJ2Vud2MtbW9kZQoJICAgICAg bW9kZS1uYW1lICJlbndjIikKCShzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgdCkpKQogIChzd2l0Y2gt dG8tYnVmZmVyICIqRU5XQyoiKSkKCihwcm92aWRlICdlbndjKQoKOzs7IGVud2MuZWwgZW5kcyBo ZXJlCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZW53Yy9lbndjLXNldHVwLmVs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MAAwMDAwMTQ0ADAwMDAwMDA2 NjQ2ADEyMDYyNDQ2NzAwADAxMzY1NQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhciAgAHNrb2xhcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXNlcnMA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7OyBlbndjLXNldHVwLmVsIC0g U2V0dXAgcm91dGluZXMgZm9yIEVOV0MKCjs7IENvcHlyaWdodCAoQykgMjAxMiBJYW4gRHVubgoK OzsgQXV0aG9yOiBJYW4gRHVubgo7OyBLZXl3b3JkczogZW53YywgbmV0d29yaywgd2ljZCwgbWFu YWdlciwgbm0KCjs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVOV0MKCjs7IEVOV0MgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAo7OyB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQo7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBv ciAoYXQgeW91ciBvcHRpb24pCjs7IGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgRU5XQyBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo7 OyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkKOzsgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo7OyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQo7OyBhbG9uZyB3aXRoIEVOV0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZQo7OyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu a2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKOzsgMDIxMTAtMTMwMSwgVVNBLgoKCihy ZXF1aXJlICdlbndjKQoocmVxdWlyZSAnZW53Yy13aWNkKQoocmVxdWlyZSAnZW53Yy1ubSkKCihk ZWZ1biBlbndjLXNldHVwLWJhY2tlbmQgKGN1ci1iYWNrKQogICJTZXRzIHVwIEVOV0MgdG8gdXNl IHRoZSBjb3JyZWN0IGZ1bmN0aW9uIGZvciB0aGUgYmFja2VuZCBDVVItQkFDSy4iCiAgKGxldCAo KHN5bS1uYW1lIChzeW1ib2wtbmFtZSBjdXItYmFjaykpKQogICAgKHNldHEgZW53Yy1zY2FuLWZ1 bmMgKGludGVybiAoY29uY2F0ICJlbndjLSIKCQkJCQkgc3ltLW5hbWUKCQkJCQkgIi1zY2FuIikp CgkgIGVud2MtZ2V0LW53LWZ1bmMgKGludGVybiAoY29uY2F0ICJlbndjLSIKCQkJCQkgICBzeW0t bmFtZQoJCQkJCSAgICItZ2V0LW5ldHdvcmtzIikpCgkgIGVud2MtZ2V0LXdpcmVsZXNzLW53LXBy b3AtZnVuYyAoaW50ZXJuIChjb25jYXQgImVud2MtIgoJCQkJCQkJIHN5bS1uYW1lCgkJCQkJCQkg Ii1nZXQtd2lyZWxlc3MtbmV0d29yay1wcm9wZXJ0eSIpKQoJICBlbndjLWRldGFpbHMtbGlzdCAo c3ltYm9sLXZhbHVlIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0iCgkJCQkJCQkgIHN5bS1uYW1lCgkJ CQkJCQkgICItZGV0YWlscy1saXN0IikpKQoJICBlbndjLWdldC1lbmNyeXB0aW9uLXR5cGUtZnVu YyAoaW50ZXJuIChjb25jYXQgImVud2MtIgoJCQkJCQkJc3ltLW5hbWUKCQkJCQkJCSItZ2V0LWVu Y3J5cHRpb24tdHlwZSIpKQoJICBlbndjLXdpcmVsZXNzLWNvbm5lY3QtZnVuYyAoaW50ZXJuIChj b25jYXQgImVud2MtIgoJCQkJCQkgICAgIHN5bS1uYW1lCgkJCQkJCSAgICAgIi1jb25uZWN0Iikp CgkgIGVud2MtZ2V0LWN1cnJlbnQtbnctaWQtZnVuYyAoaW50ZXJuIChjb25jYXQgImVud2MtIgoJ CQkJCQkgICAgICBzeW0tbmFtZQoJCQkJCQkgICAgICAiLWdldC1jdXJyZW50LW53LWlkIikpCgkg IGVud2MtY2hlY2stY29ubmVjdGluZy1mdW5jIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0iCgkJCQkJ CSAgICAgc3ltLW5hbWUKCQkJCQkJICAgICAiLWNoZWNrLWNvbm5lY3RpbmciKSkKCSAgZW53Yy1n ZXQtd2lyZWQtcHJvZmlsZXMtZnVuYyAoaW50ZXJuIChjb25jYXQgImVud2MtIgoJCQkJCQkgICAg ICAgc3ltLW5hbWUKCQkJCQkJICAgICAgICItZ2V0LXdpcmVkLXByb2ZpbGVzIikpCgkgIGVud2Mt aXMtd2lyZWQtZnVuYyAoaW50ZXJuIChjb25jYXQgImVud2MtIgoJCQkJCSAgICAgc3ltLW5hbWUK CQkJCQkgICAgICItaXMtd2lyZWQiKSkKCSAgZW53Yy13aXJlZC1jb25uZWN0LWZ1bmMgKGludGVy biAoY29uY2F0ICJlbndjLSIKCQkJCQkJICBzeW0tbmFtZQoJCQkJCQkgICItd2lyZWQtY29ubmVj dCIpKQoJICBlbndjLXdpcmVkLWRpc2Nvbm5lY3QtZnVuYyAoaW50ZXJuIChjb25jYXQgImVud2Mt IgoJCQkJCQkgICAgIHN5bS1uYW1lCgkJCQkJCSAgICAgIi13aXJlZC1kaXNjb25uZWN0IikpCgkg IGVud2MtZ2V0LXNlYy10eXBlcy1mdW5jIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0iCgkJCQkJCSAg c3ltLW5hbWUKCQkJCQkJICAiLWdldC1zZWMtdHlwZXMiKSkKCSAgZW53Yy1nZXQtaXAtYWRkci1m dW5jIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0iCgkJCQkJCXN5bS1uYW1lCgkJCQkJCSItZ2V0LWlw LWFkZHIiKSkKCSAgZW53Yy1nZXQtbmV0bWFzay1mdW5jIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0i CgkJCQkJCXN5bS1uYW1lCgkJCQkJCSItZ2V0LW5ldG1hc2siKSkKCSAgZW53Yy1nZXQtZ2F0ZXdh eS1mdW5jIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0iCgkJCQkJCXN5bS1uYW1lCgkJCQkJCSItZ2V0 LWdhdGV3YXkiKSkKCSAgZW53Yy1nZXQtZG5zLWZ1bmMgKGludGVybiAoY29uY2F0ICJlbndjLSIK CQkJCQkgICAgc3ltLW5hbWUKCQkJCQkgICAgIi1nZXQtZG5zIikpCgkgIGVud2Mtc2F2ZS1udy1z ZXR0aW5ncy1mdW5jIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0iCgkJCQkJCSAgICAgc3ltLW5hbWUK CQkJCQkJICAgICAiLXNhdmUtbnctc2V0dGluZ3MiKSkKCSAgKSkpCgooZGVmdW4gZW53Yy1zZXR1 cCAoKQogICJTZXRzIHVwIGVud2MgbW9kZSBhbmQgY29uZmlybXMgdGhhdCBvbmUgb2YgdGhlIGJh Y2tlbmRzCiBjYW4gYmUgZm91bmQgb24gRC1CdXMuIgogIChzZXRxIGdsb2JhbC1tb2RlLXN0cmlu ZyAoYXBwZW5kIGdsb2JhbC1tb2RlLXN0cmluZwoJCQkJICAgJyhlbndjLWRpc3BsYXktc3RyaW5n KSkpCiAgKHJ1bi1hdC10aW1lIHQgMSAnZW53Yy11cGRhdGUtbW9kZS1saW5lKQoKICAobGV0ICgo Y3VyLWJhY2sgbmlsKQoJKGJhY2stbGlzdCBlbndjLWJhY2tlbmRzKSkKICAgICh3aGlsZSAoYW5k IGJhY2stbGlzdCAobm90IGN1ci1iYWNrKSkKICAgICAgKHNldHEgY3VyLWJhY2sgKHBvcCBiYWNr LWxpc3QpKQogICAgICAoaWYgKG5vdCAoZGJ1cy1waW5nIDpzeXN0ZW0KCQkJICAoc3ltYm9sLXZh bHVlIChpbnRlcm4gKGNvbmNhdCAiZW53Yy0iCgkJCQkJCQkoc3ltYm9sLW5hbWUgY3VyLWJhY2sp CgkJCQkJCQkiLWRidXMtc2VydmljZSIpKSkpKQoJICAoc2V0cSBjdXItYmFjayBuaWwpKSkKICAg IChpZiBjdXItYmFjawoJKGVud2Mtc2V0dXAtYmFja2VuZCBjdXItYmFjaykKICAgICAgKGVycm9y ICJObyB1c2FibGUgYmFja2VuZCBmb3VuZC4iKSkpKQoKKHByb3ZpZGUgJ2Vud2Mtc2V0dXApCgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVud2MvZW53Yy1ubS5lbAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTAAMDAwMDE0NAAwMDAwMDAzMjE1NgAxMjA2 MjQ0NjcwMAAwMTMxMjIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIgIABza29sYXIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzZXJzAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzsgZW53Yy1ubS5lbCAtIFRoZSBOZXR3b3Jr TWFuYWdlciBiYWNrZW5kIHRvIEVOV0MKCjs7IENvcHlyaWdodCAoQykgMjAxMiBJYW4gRHVubgoK OzsgQXV0aG9yOiBJYW4gRHVubgo7OyBLZXl3b3JkczogZW53YywgbmV0d29yaywgd2ljZCwgbWFu YWdlciwgbm0KCjs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVOV0MKCjs7IEVOV0MgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAo7OyB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQo7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBv ciAoYXQgeW91ciBvcHRpb24pCjs7IGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgRU5XQyBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo7 OyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkKOzsgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo7OyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQo7OyBhbG9uZyB3aXRoIEVOV0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZQo7OyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu a2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKOzsgMDIxMTAtMTMwMSwgVVNBLgoKCihy ZXF1aXJlICdlbndjKQoKKGRlZmdyb3VwIGVud2Mtbm0gbmlsCiAgIipOZXR3b3JrTWFuYWdlciB2 YXJpYWJsZXMgZm9yIEVOV0MiCiAgOnByZWZpeCAiZW53Yy1ubS0iCiAgOmdyb3VwICdlbndjKQoK KGRlZmN1c3RvbSBlbndjLW5tLWRidXMtc2VydmljZSAib3JnLmZyZWVkZXNrdG9wLk5ldHdvcmtN YW5hZ2VyIgogICJOZXR3b3JrTWFuYWdlciBELUJ1cyBzZXJ2aWNlLiIKICA6Z3JvdXAgJ2Vud2Mt bm0KICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBlbndjLW5tLWRidXMtcGF0aCAiL29yZy9m cmVlZGVza3RvcC9OZXR3b3JrTWFuYWdlciIKICAiVGhlIGRlZmF1bHQgRC1CdXMgcGF0aCBmb3Ig TmV0d29ya01hbmFnZXIuIgogIDpncm91cCAnZW53Yy1ubQogIDp0eXBlICdzdHJpbmcpCgooZGVm Y3VzdG9tIGVud2Mtbm0tZGJ1cy1zZXR0aW5ncy1wYXRoICIvb3JnL2ZyZWVkZXNrdG9wL05ldHdv cmtNYW5hZ2VyL1NldHRpbmdzIgogICJUaGUgc2V0dGluZ3MgRC1CdXMgcGF0aCBmb3IgTmV0d29y a01hbmFnZXIuIgogIDpncm91cCAnZW53Yy1ubQogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9t IGVud2Mtbm0tZGJ1cy1pbnRlcmZhY2UgIm9yZy5mcmVlZGVza3RvcC5OZXR3b3JrTWFuYWdlciIK ICAiVGhlIGRlZmF1bHQgRC1CdXMgaW50ZXJmYWNlIGZvciBOZXR3b3JrTWFuYWdlci4iCiAgOmdy b3VwICdlbndjLW5tCiAgOnR5cGUgJ3N0cmluZykKCihkZWZjdXN0b20gZW53Yy1ubS1kYnVzLXdp cmVsZXNzLWludGVyZmFjZSAib3JnLmZyZWVkZXNrdG9wLk5ldHdvcmtNYW5hZ2VyLkRldmljZS5X aXJlbGVzcyIKICAiVGhlIHdpcmVsZXNzIEQtQnVzIGludGVyZmFjZSBmb3IgTmV0d29ya01hbmFn ZXIuIgogIDpncm91cCAnZW53Yy1ubQogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGVud2Mt bm0tZGJ1cy13aXJlZC1pbnRlcmZhY2UgIm9yZy5mcmVlZGVza3RvcC5OZXR3b3JrTWFuYWdlci5E ZXZpY2UuV2lyZWQiCiAgIlRoZSB3aXJlZCBELUJ1cyBpbnRlcmZhY2UgZm9yIE5ldHdvcmtNYW5h Z2VyLiIKICA6Z3JvdXAgJ2Vud2Mtbm0KICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBlbndj LW5tLWRidXMtZGV2aWNlLWludGVyZmFjZSAib3JnLmZyZWVkZXNrdG9wLk5ldHdvcmtNYW5hZ2Vy LkRldmljZSIKICAiVGhlIGRldmljZSBELUJ1cyBpbnRlcmZhY2UgZm9yIE5ldHdvcmtNYW5hZ2Vy LiIKICA6Z3JvdXAgJ2Vud2Mtbm0KICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBlbndjLW5t LWRidXMtYWNjZXNzcG9pbnQtaW50ZXJmYWNlICJvcmcuZnJlZWRlc2t0b3AuTmV0d29ya01hbmFn ZXIuQWNjZXNzUG9pbnQiCiAgIlRoZSBhY2Nlc3MgcG9pbnQgRC1CdXMgaW50ZXJmYWNlIGZvciBO ZXR3b3JrTWFuYWdlci4iCiAgOmdyb3VwICdlbndjLW5tCiAgOnR5cGUgJ3N0cmluZykKCihkZWZj dXN0b20gZW53Yy1ubS1kYnVzLXNldHRpbmdzLWludGVyZmFjZSAib3JnLmZyZWVkZXNrdG9wLk5l dHdvcmtNYW5hZ2VyLlNldHRpbmdzIgogICJUaGUgc2V0dGluZ3MgRC1CdXMgaW50ZXJmYWNlIGZv ciBOZXR3b3JrTWFuYWdlci4iCiAgOmdyb3VwICdlbndjLW5tCiAgOnR5cGUgJ3N0cmluZykKCihk ZWZjdXN0b20gZW53Yy1ubS1kYnVzLWNvbm5lY3Rpb25zLWludGVyZmFjZSAib3JnLmZyZWVkZXNr dG9wLk5ldHdvcmtNYW5hZ2VyLlNldHRpbmdzLkNvbm5lY3Rpb24iCiAgIlRoZSBjb25uZWN0aW9u cyBELUJ1cyBpbnRlcmZhY2UgZm9yIE5ldHdvcmtNYW5hZ2VyLiIKICA6Z3JvdXAgJ2Vud2Mtbm0K ICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBlbndjLW5tLWRidXMtYWN0aXZlLWludGVyZmFj ZSAib3JnLmZyZWVkZXNrdG9wLk5ldHdvcmtNYW5hZ2VyLkNvbm5lY3Rpb24uQWN0aXZlIgogICJU aGUgYWN0aXZlIGNvbm5lY3Rpb24gRC1CdXMgaW50ZXJmYWNlIGZvciBOZXR3b3JrTWFuYWdlci4i CiAgOmdyb3VwICdlbndjLW5tCiAgOnR5cGUgJ3N0cmluZykKCihkZWZ2YXIgZW53Yy1ubS1kZXRh aWxzLWxpc3QKICAnKCJTc2lkIiAiSHdBZGRyZXNzIiAiU3RyZW5ndGgiICJGbGFncyIgIk1vZGUi ICJGcmVxdWVuY3kiKQogICJUaGUgbGlzdCBvZiB0aGUgZGVzaXJlZCBkZXRhaWxzIHRvIGJlIG9i dGFpbmVkIGZyb20gZWFjaCBuZXR3b3JrLiIpCgoKKGRlZnVuIGVud2Mtbm0tZ2V0LXNldHRpbmdz IChjb25uKQogIChkYnVzLWNhbGwtbWV0aG9kIDpzeXN0ZW0KCQkgICAgZW53Yy1ubS1kYnVzLXNl cnZpY2UKCQkgICAgY29ubgoJCSAgICBlbndjLW5tLWRidXMtY29ubmVjdGlvbnMtaW50ZXJmYWNl CgkJICAgICJHZXRTZXR0aW5ncyIKCQkgICAgOnRpbWVvdXQgMjUwMDApKQogIAoKKGRlZnVuIGVu d2Mtbm0tbGlzdC1jb25uZWN0aW9ucyAoKQogIChkYnVzLWNhbGwtbWV0aG9kIDpzeXN0ZW0KCQkg ICAgZW53Yy1ubS1kYnVzLXNlcnZpY2UKCQkgICAgZW53Yy1ubS1kYnVzLXNldHRpbmdzLXBhdGgK CQkgICAgZW53Yy1ubS1kYnVzLXNldHRpbmdzLWludGVyZmFjZQoJCSAgICAiTGlzdENvbm5lY3Rp b25zIgoJCSAgICA6dGltZW91dCAyNTAwMCkpCgo7OyBEZWZhdWx0CihkZWZ1biBlbndjLW5tLWdl dC1kZXZpY2UtYnktbmFtZSAobmFtZSkKICAoZGJ1cy1jYWxsLW1ldGhvZCA6c3lzdGVtCgkJICAg IGVud2Mtbm0tZGJ1cy1zZXJ2aWNlCgkJICAgIGVud2Mtbm0tZGJ1cy1wYXRoCgkJICAgIGVud2Mt bm0tZGJ1cy1pbnRlcmZhY2UKCQkgICAgIkdldERldmljZUJ5SXBJZmFjZSIKCQkgICAgOnRpbWVv dXQgMjUwMDAKCQkgICAgOnN0cmluZyBuYW1lKSkKCjs7IFNldHRpbmdzLCBDb25uZWN0aW9ucwoo ZGVmdW4gZW53Yy1ubS1nZXQtdXVpZC1ieS1zc2lkIChzc2lkKQogICJHZXRzIHRoZSB1dWlkIG9m IHRoZSBuZXR3b3JrIHdpdGggc3NpZCBTU0lELiIKICAobGV0ICgoY29ubnMgKGVud2Mtbm0tbGlz dC1jb25uZWN0aW9ucykpCgljdXItY29ubiBjdXItc3NpZCB1dWlkKQogICAgKHdoaWxlIChhbmQg Y29ubnMgKG5vdCB1dWlkKSkKICAgICAgKHNldHEgY3VyLWNvbm4gKHBvcCBjb25ucykpCiAgICAg IChsZXQgKChzZXR0aW5ncyAoZW53Yy1ubS1nZXQtc2V0dGluZ3MgY3VyLWNvbm4pKSkKCShpZiAo bm90IChhc3NvYyAiODAyLTExLXdpcmVsZXNzIiBzZXR0aW5ncykpCgkgICAgbmlsCgkgIChzZXRx IGN1ci1zc2lkCgkJKGRidXMtYnl0ZS1hcnJheS10by1zdHJpbmcgKGNhciAoY2FkciAoYXNzb2Mg InNzaWQiCgkJCQkJCQkgICAgIChjYWRyIChhc3NvYyAiODAyLTExLXdpcmVsZXNzIiBzZXR0aW5n cykpKSkpKSkKCSAgKGlmIChzdHJpbmc9IGN1ci1zc2lkIHNzaWQpCgkgICAgICAoc2V0cSB1dWlk IChjYXIgKGNhZHIgKGFzc29jICJ1dWlkIiAoY2FkciAoYXNzb2MgImNvbm5lY3Rpb24iIHNldHRp bmdzKSkpKSkpKSkpKSkpCgooZGVmdW4gZW53Yy1ubS1nZXQtdXVpZC1ieS1pZCAoaWQpCiAgKGxl dCAoKGNvbm5zIChlbndjLW5tLWxpc3QtY29ubmVjdGlvbnMpKQoJY3VyLWNvbm4gY3VyLWlkIHV1 aWQpCiAgICAod2hpbGUgKGFuZCBjb25ucyAobm90IHV1aWQpKQogICAgICAoc2V0cSBjdXItY29u biAocG9wIGNvbm5zKSkKICAgICAgKGxldCAoKHNldHRpbmdzIChlbndjLW5tLWdldC1zZXR0aW5n cyBjdXItY29ubikpCgkgICAgY29ubi1zZXQpCgkoaWYgKG5vdCAoYXNzb2MgImNvbm5lY3Rpb24i IHNldHRpbmdzKSkKCSAgICBuaWwKCSAgKHNldHEgY29ubi1zZXQgKGFzc29jICJjb25uZWN0aW9u IiBzZXR0aW5ncykpCgkgIChzZXRxIGN1ci1pZCAoY2FyIChjYWRyIChhc3NvYyAiaWQiIChjYWRy IGNvbm4tc2V0KSkpKSkKCSAgKGlmIChzdHJpbmc9IGN1ci1pZCBpZCkKCSAgICAgIChzZXRxIHV1 aWQgKGNhciAoY2FkciAoYXNzb2MgInV1aWQiIChjYWRyIGNvbm4tc2V0KSkpKSkpKSkpKSkKCihk ZWZ1biBlbndjLW5tLWdldC1jb25uLWJ5LXV1aWQgKHV1aWQpCiAgKGRidXMtY2FsbC1tZXRob2Qg OnN5c3RlbQoJCSAgICBlbndjLW5tLWRidXMtc2VydmljZQoJCSAgICBlbndjLW5tLWRidXMtc2V0 dGluZ3MtcGF0aAoJCSAgICBlbndjLW5tLWRidXMtc2V0dGluZ3MtaW50ZXJmYWNlCgkJICAgICJH ZXRDb25uZWN0aW9uQnlVdWlkIgoJCSAgICA6dGltZW91dCAyNTAwMAoJCSAgICB1dWlkKSkKCjs7 IFNldHRpbmdzCihkZWZ1biBlbndjLW5tLWdldC1jb25uLWJ5LXNzaWQgKHNzaWQpCiAgIkdldHMg dGhlIGNvbm5lY3Rpb24gcGF0aCBmb3IgdGhlIGFjY2VzcyBwb2ludCB3aXRoIHNzaWQgU1NJRC4i CiAgKGxldCAoKHV1aWQgKGVud2Mtbm0tZ2V0LXV1aWQtYnktc3NpZCBzc2lkKSkpCiAgICAoZW53 Yy1ubS1nZXQtY29ubi1ieS11dWlkIHV1aWQpKSkKCihkZWZ1biBlbndjLW5tLWdldC1jb25uLWJ5 LWlkIChpZCkKICAobGV0ICgodXVpZCAoZW53Yy1ubS1nZXQtdXVpZC1ieS1pZCBpZCkpKQogICAg KGVud2Mtbm0tZ2V0LWNvbm4tYnktdXVpZCB1dWlkKSkpCgoKOzsgV2lyZWxlc3MKKGRlZnVuIGVu d2Mtbm0tc2NhbiAoKQogICJUaGUgTmV0d29ya01hbmFnZXIgc2NhbiBmdW5jdGlvbi4iCiAgKGRi dXMtY2FsbC1tZXRob2QgOnN5c3RlbQoJCSAgICBlbndjLW5tLWRidXMtc2VydmljZQoJCSAgICAo ZW53Yy1ubS1nZXQtZGV2aWNlLWJ5LW5hbWUgZW53Yy13aXJlbGVzcy1kZXZpY2UpCgkJICAgIGVu d2Mtbm0tZGJ1cy13aXJlbGVzcy1pbnRlcmZhY2UKCQkgICAgIlJlcXVlc3RTY2FuIgoJCSAgICA6 dGltZW91dCAyNTAwMAoJCSAgICAnKDphcnJheSA6c2lnbmF0dXJlICJ7c3Z9IikpKQoKOzsgV2ly ZWxlc3MKKGRlZnVuIGVud2Mtbm0tZ2V0LW5ldHdvcmtzICgpCiAgIlRoZSBOZXR3b3JrTWFuYWdl ciBnZXQgbmV0d29ya3MgZnVuY3Rpb24uClRoaXMgcmV0dXJucyBhIGxpc3Qgb2YgRC1CdXMgcGF0 aHMgdG8gdGhlIGFjY2VzcyBwb2ludHMuIgogIChkYnVzLWNhbGwtbWV0aG9kIDpzeXN0ZW0KCQkg ICAgZW53Yy1ubS1kYnVzLXNlcnZpY2UKCQkgICAgKGVud2Mtbm0tZ2V0LWRldmljZS1ieS1uYW1l IGVud2Mtd2lyZWxlc3MtZGV2aWNlKQoJCSAgICBlbndjLW5tLWRidXMtd2lyZWxlc3MtaW50ZXJm YWNlCgkJICAgICJHZXRBY2Nlc3NQb2ludHMiKSkKCjs7IEFjY2Vzc3BvaW50CihkZWZ1biBlbndj LW5tLWdldC13aXJlbGVzcy1uZXR3b3JrLXByb3BlcnR5IChpZCBwcm9wKQogICJUaGUgTmV0d29y a01hbmFnZXIgZ2V0IHdpcmVsZXNzIG5ldHdvcmsgcHJvcGVydHkgZnVuY3Rpb24uClRoaXMgcnVu cyBsaWtlIG5vcm1hbCwgdXNpbmcgZWxlbWVudCBJRCBvZiBgZW53Yy1hY2Nlc3MtcG9pbnRzJwog dG8gZGV0ZXJtaW5lIHRoZSBhY2Nlc3MgcG9pbnQgcGF0aCwgdGhlbiBvYnRhaW5zIHRoZSBwcm9w ZXJ0eQpQUk9QIGZyb20gdGhhdCBhY2Nlc3MgcG9pbnQuICBJdCBhbHNvIHNldHMgdGhlIGNoYW5u ZWwgZnJvbSB0aGUKIGZyZXF1ZW5jeSBpZiBuZWNlc3NhcnkuIgogIChsZXQgKChhcCAobnRoIGlk IGVud2MtYWNjZXNzLXBvaW50cykpCglyZXQpCiAgICAoc2V0cSByZXQgKGRidXMtZ2V0LXByb3Bl cnR5IDpzeXN0ZW0KCQkJCSBlbndjLW5tLWRidXMtc2VydmljZQoJCQkJIGFwCgkJCQkgZW53Yy1u bS1kYnVzLWFjY2Vzc3BvaW50LWludGVyZmFjZQoJCQkJIHByb3ApKQogICAgKGlmICg9IHByb3Ag IkZyZXF1ZW5jeSIpCgkoc2V0cSByZXQgKDErICgvICgtIHJldCAyNDEyKSA1KSkpKQogICAgcmV0 KSkKCihkZWZ1biBlbndjLW5tLWdldC1lbmNyeXB0aW9uLXR5cGUgKGlkKQogICJUaGUgTmV0d29y a01hbmFnZXIgZ2V0IGVuY3J5cHRpb24gdHlwZSBmdW5jdGlvbi4KVGhpcyBnZXRzIHRoZSBXUEEg ZmxhZ3MgYW5kIFJTTiBmbGFncyBmcm9tIGFjY2VzcyBwb2ludCBpbiBJRC4KSWYgYm90aCBhcmUg MCwgdGhlbiBpdCByZXR1cm5zIFdFUCwgb3RoZXJ3aXNlIFdQQS4iCiAgKGxldCAoKHdwYS1mbGFn cyAoZW53Yy1ubS1nZXQtd2lyZWxlc3MtbmV0d29yay1wcm9wZXJ0eSBpZCAiV3BhRmxhZ3MiKSkK CShyc24tZmxhZ3MgKGVud2Mtbm0tZ2V0LXdpcmVsZXNzLW5ldHdvcmstcHJvcGVydHkgaWQgIlJz bkZsYWdzIikpKQogICAgKGlmIChhbmQgKD0gd3BhLWZsYWdzIDApICg9IHJzbi1mbGFncyAwKSkK CSJXRVAiCiAgICAgICJXUEEiKSkpCgo7OyBEZWZhdWx0CihkZWZ1biBlbndjLW5tLWNvbm5lY3Qg KGlkKQogICJUaGUgTmV0d29ya01hbmFnZXIgY29ubmVjdCBmdW5jdGlvbi4KVGhpcyBnZXRzIHRo ZSBjb25uZWN0aW9uIHBhdGggZnJvbSBJRCwgYW5kIGNvbm5lY3RzIHRvIGl0LiIKICAobGV0ICgo c3NpZCAoZW53Yy1ubS1nZXQtd2lyZWxlc3MtbmV0d29yay1wcm9wZXJ0eSBpZCAiU3NpZCIpKSkK ICAgIChkYnVzLWNhbGwtbWV0aG9kIDpzeXN0ZW0KCQkgICAgICBlbndjLW5tLWRidXMtc2Vydmlj ZQoJCSAgICAgIGVud2Mtbm0tZGJ1cy1wYXRoCgkJICAgICAgZW53Yy1ubS1kYnVzLWludGVyZmFj ZQoJCSAgICAgICJBY3RpdmF0ZUNvbm5lY3Rpb24iCgkJICAgICAgOnRpbWVvdXQgMjUwMDAKCQkg ICAgICAoZW53Yy1ubS1nZXQtY29ubi1ieS1zc2lkIHNzaWQpCgkJICAgICAgKGVud2Mtbm0tZ2V0 LWRldmljZS1ieS1uYW1lIGVud2Mtd2lyZWxlc3MtZGV2aWNlKQoJCSAgICAgIChudGggaWQgZW53 Yy1hY2Nlc3MtcG9pbnRzKSkpKQoKOzsgV2lyZWxlc3MKKGRlZnVuIGVud2Mtbm0tZ2V0LWN1cnJl bnQtbnctaWQgKHdpcmVkKQogICJUaGUgTmV0d29ya01hbmFnZXIgZ2V0IGN1cnJlbnQgbmV0d29y ayBpZCBmdW5jdGlvbi4KVGhpcyBzaW1wbHkgY2hlY2tzIGZvciB0aGUgYWN0aXZlIGFjY2VzcyBw b2ludC4iCiAgKGRidXMtZ2V0LXByb3BlcnR5IDpzeXN0ZW0KCQkgICAgIGVud2Mtbm0tZGJ1cy1z ZXJ2aWNlCgkJICAgICAoaWYgd2lyZWQKCQkJIChlbndjLW5tLWdldC1kZXZpY2UtYnktbmFtZSBl bndjLXdpcmVkLWRldmljZSkKCQkgICAgICAgKGVud2Mtbm0tZ2V0LWRldmljZS1ieS1uYW1lIGVu d2Mtd2lyZWxlc3MtZGV2aWNlKSkKCQkgICAgIGVud2Mtbm0tZGJ1cy13aXJlbGVzcy1pbnRlcmZh Y2UKCQkgICAgICJBY3RpdmVBY2Nlc3NQb2ludCIpKQoKOzsgRGVmYXVsdAooZGVmdW4gZW53Yy1u bS1jaGVjay1jb25uZWN0aW5nICgpCiAgIlRoZSBOZXR3b3JrTWFuYWdlciBjaGVjayBjb25uZWN0 aW5nIGZ1bmN0aW9uLiIKICAobGV0ICgoc3RhdGUgKGRidXMtZ2V0LXByb3BlcnR5IDpzeXN0ZW0K CQkJCSAgZW53Yy1ubS1kYnVzLXNlcnZpY2UKCQkJCSAgZW53Yy1ubS1kYnVzLXBhdGgKCQkJCSAg ZW53Yy1ubS1kYnVzLWludGVyZmFjZQoJCQkJICAiU3RhdGUiKSkpCiAgICAoaWYgKD0gc3RhdGUg NDApCgl0CiAgICAgIG5pbCkpKQoKOzsgRGV2aWNlCihkZWZ1biBlbndjLW5tLWRpc2Nvbm5lY3Qt d2lyZWxlc3MgKCkKICAoZGJ1cy1jYWxsLW1ldGhvZCA6c3lzdGVtCgkJICAgIGVud2Mtbm0tZGJ1 cy1zZXJ2aWNlCgkJICAgIChlbndjLW5tLWdldC1kZXZpY2UtYnktbmFtZSBlbndjLXdpcmVsZXNz LWRldmljZSkKCQkgICAgZW53Yy1ubS1kYnVzLWRldmljZS1pbnRlcmZhY2UKCQkgICAgIkRpc2Nv bm5lY3QiKSkKCjs7IFNldHRpbmdzLCBDb25uZWN0aW9ucwooZGVmdW4gZW53Yy1ubS1nZXQtd2ly ZWQtcHJvZmlsZXMgKCkKICAobGV0ICgocHJvZnMtbGlzdCAoZW53Yy1ubS1saXN0LWNvbm5lY3Rp b25zKSkpCiAgICAobWFwY2FyIChsYW1iZGEgKHgpCgkgICAgICAobGV0ICgocHJvcHMgKGVud2Mt bm0tZ2V0LXNldHRpbmdzIHgpKSkKCQkoaWYgKHN0cmluZz0gKGNhYXIgcHJvcHMpICJjb25uZWN0 aW9uIikKCQkgICAgKGNhciAoY2FkciAoY2FyIChjYWRyIChjYXIgcHJvcHMpKSkpKSkpKQoJICAg IHByb2ZzLWxpc3QpKSkKCihkZWZ1biBlbndjLW5tLXdpcmVkLWNvbm5lY3QgKGlkKQogIChsZXQg KChuaWQgKG50aCBpZCBlbndjLWFjY2Vzcy1wb2ludHMpKSkKICAgIChkYnVzLWNhbGwtbWV0aG9k IDpzeXN0ZW0KCQkgICAgICBlbndjLW5tLWRidXMtc2VydmljZQoJCSAgICAgIGVud2Mtbm0tZGJ1 cy1wYXRoCgkJICAgICAgZW53Yy1ubS1kYnVzLWludGVyZmFjZQoJCSAgICAgIDp0aW1lb3V0IDI1 MDAwCgkJICAgICAgKGVud2Mtbm0tZ2V0LWNvbm4tYnktaWQgbmlkKQoJCSAgICAgIChlbndjLW5t LWdldC1kZXZpY2UtYnktbmFtZSBlbndjLXdpcmVkLWRldmljZSkKCQkgICAgICAiLyIpKSkKCjs7 IERldmljZQooZGVmdW4gZW53Yy1ubS13aXJlZC1kaXNjb25uZWN0ICgpCiAgKGRidXMtY2FsbC1t ZXRob2QgOnN5c3RlbQoJCSAgICBlbndjLW5tLWRidXMtc2VydmljZQoJCSAgICAoZW53Yy1ubS1n ZXQtZGV2aWNlLWJ5LW5hbWUgZW53Yy13aXJlZC1kZXZpY2UpCgkJICAgIGVud2Mtbm0tZGJ1cy1k ZXZpY2UtaW50ZXJmYWNlCgkJICAgICJEaXNjb25uZWN0IikpCgo7OyBEZWZhdWx0CihkZWZ1biBl bndjLW5tLWlzLXdpcmVkICgpCiAgKGxldCAoKGFjdGl2ZSAoZGJ1cy1nZXQtcHJvcGVydHkgOnN5 c3RlbQoJCQkJICAgZW53Yy1ubS1kYnVzLXNlcnZpY2UKCQkJCSAgIGVud2Mtbm0tZGJ1cy1wYXRo CgkJCQkgICBlbndjLW5tLWRidXMtaW50ZXJmYWNlCgkJCQkgICAiQWN0aXZlQ29ubmVjdGlvbnMi KSkKCWN1ci1jb25uIHByb3AgZGV2IGN1ci1kZXYpCiAgICAod2hpbGUgKGFuZCBhY3RpdmUgKG5v dCBjdXItY29ubikpCiAgICAgIChzZXRxIGN1ci1jb25uIChwb3AgYWN0aXZlKSkKICAgICAgKHNl dHEgZGV2IChkYnVzLWdldC1wcm9wZXJ0eSA6c3lzdGVtCgkJCQkgICBlbndjLW5tLWRidXMtc2Vy dmljZQoJCQkJICAgY3VyLWNvbm4KCQkJCSAgIGVud2Mtbm0tZGJ1cy1hY3RpdmUtaW50ZXJmYWNl CgkJCQkgICAiRGV2aWNlcyIpKQogICAgICAod2hpbGUgKGFuZCBkZXYgKG5vdCBjdXItZGV2KSkK CShzZXRxIGN1ci1kZXYgKHBvcCBhY3RpdmUpKQoJKHNldHEgcHJvcCAoZGJ1cy1nZXQtcHJvcGVy dHkgOnN5c3RlbQoJCQkJICAgICAgZW53Yy1ubS1kYnVzLXNlcnZpY2UKCQkJCSAgICAgIGN1ci1k ZXYKCQkJCSAgICAgIGVud2Mtbm0tZGJ1cy1kZXZpY2UtaW50ZXJmYWNlCgkJCQkgICAgICAiRGV2 aWNlVHlwZSIpKQoJKGlmIChub3QgKGVxIHByb3AgMSkpCgkgICAgKHNldHEgY3VyLWNvbm4gbmls CgkJICBjdXItZGV2IG5pbCkpKQogICAgKG5vdCAobm90IGN1ci1jb25uKSkpKSkKCjs7IEVhY2gg ZW50cnkgaW4gc2VjLXR5cGVzIHNob3VsZCBiZToKOzsgKCJOYW1lIiAuICgoImtleTEiIC4gIkVu dHJ5MSIpICgia2V5MiIgLiAiRW50cnkyIikgLi4uICkpCgooZGVmdW4gZW53Yy1ubS1nZXQtc2Vj LXR5cGVzICh3aXJlZCkKICAoaWYgd2lyZWQKICAgICAgbmlsCiAgICBuaWwpCiAgKQoKKGRlZnVu IGVud2Mtbm0tY29udmVydC1hZGRyIChhZGRyKQogIChsZXQqICgoaGV4LWFkZHIgKGZvcm1hdCAi JTA4eCIgYWRkcikpCgkgKHJldC1hZGRyIChmb3JtYXQgIiVpLiVpLiVpLiVpIgoJCQkgICAoc3Ry aW5nLXRvLW51bWJlciAoc3Vic3RyaW5nIGhleC1hZGRyCgkJCQkJCQk2IDgpCgkJCQkJICAgICAx NikKCQkJICAgKHN0cmluZy10by1udW1iZXIgKHN1YnN0cmluZyBoZXgtYWRkcgoJCQkJCQkJNCA2 KQoJCQkJCSAgICAgMTYpCgkJCSAgIChzdHJpbmctdG8tbnVtYmVyIChzdWJzdHJpbmcgaGV4LWFk ZHIKCQkJCQkJCTIgNCkKCQkJCQkgICAgIDE2KQoJCQkgICAoc3RyaW5nLXRvLW51bWJlciAoc3Vi c3RyaW5nIGhleC1hZGRyCgkJCQkJCQkwIDIpCgkJCQkJICAgICAxNikpKSkKICAgIHJldC1hZGRy KSkKCihkZWZ1biBlbndjLW5tLWFkZHItYmFjayAoYWRkcikKICAobGV0ICgoYnl0ZXMgKHNwbGl0 LXN0cmluZyBhZGRyICIuIikpCgkgcmV0LXZhbCkKICAgIChzZXRxIHJldC12YWwgKGxvZ2lvciAo bHNoIChzdHJpbmctdG8tbnVtYmVyIChudGggMyBieXRlcykpCgkJCSAgICAgICAwKQoJCQkgIChs c2ggKHN0cmluZy10by1udW1iZXIgKG50aCAyIGJ5dGVzKSkKCQkJICAgICAgIDEpCgkJCSAgKGxz aCAoc3RyaW5nLXRvLW51bWJlciAobnRoIDEgYnl0ZXMpKQoJCQkgICAgICAgMikKCQkJICAobHNo IChzdHJpbmctdG8tbnVtYmVyIChudGggMCBieXRlcykpCgkJCSAgICAgICAzKSkpKSkKCjs7IFRo ZXNlIG5leHQgdHdvIGNvbWUgZnJvbSBsaWJubS11dGlsL25tLXV0aWxzLmMgaW4gTk0ncyBzb3Vy Y2UuCgooZGVmdW4gZW53Yy1ubS1uZXRtYXNrLXRvLXByZWZpeCAobmV0bWFzaykpCgooZGVmdW4g ZW53Yy1ubS1wcmVmaXgtdG8tbmV0bWFzayAocHJlZml4KQogIChsZXQgKChwZiBwcmVmaXgpCgko bmV0bWFzayAwKQoJKG1zayAjeDgwMDAwMDAwKSkKICAod2hpbGUgKD4gcGYgMCkKICAgIChzZXRx IG5ldG1hc2sgKGxvZ2lvciBuZXRtYXNrIG1zaykpCiAgICAoc2V0cSBtc2sgKGxzaCBtc2sgLTEp KQogICAgKHNldHEgcGYgKDEtIHBmKSkpCiAgbmV0bWFzaykpCgooZGVmdW4gZW53Yy1ubS1nZXQt aXAtYWRkciAod2lyZWQgaWQpCiAgKGxldCAoKHByb3BzIChlbndjLW5tLWdldC1zZXR0aW5ncyAo bnRoIGlkIGVud2MtYWNjZXNzLXBvaW50cykpKQoJaXBhZGRyIHJldC1hZGRyKQogICAgKHNldHEg aXBhZGRyIChudGggMCAoY2FhciAoY2FkciAoYXNzb2MgImFkZHJlc3NlcyIKCQkJCQkgICAoY2Fk ciAoYXNzb2MgImlwdjQiCgkJCQkJCQlwcm9wcykpKSkpKSkKICAgIChzZXRxIHJldC1hZGRyIChl bndjLW5tLWNvbnZlcnQtYWRkciBpcGFkZHIpKSkpCgooZGVmdW4gZW53Yy1ubS1nZXQtbmV0bWFz ayAod2lyZWQgaWQpCiAgKGxldCAoKHByb3BzIChlbndjLW5tLWdldC1zZXR0aW5ncyAobnRoIGlk IGVud2MtYWNjZXNzLXBvaW50cykpKQoJaXBhZGRyIGhleC1hZGRyIHJldC1hZGRyKQogICAgKHNl dHEgaXBhZGRyIChudGggMyAoY2FhciAoY2FkciAoYXNzb2MgImFkZHJlc3NlcyIKCQkJCQkgICAo Y2FkciAoYXNzb2MgImlwdjQiCgkJCQkJCQlwcm9wcykpKSkpKSkKICAgIChzZXRxIGhleC1hZGRy IChlbndjLW5tLXByZWZpeC10by1uZXRtYXNrIGlwYWRkcikpCiAgICAoc2V0cSByZXQtYWRkciAo Zm9ybWF0ICIlaS4laS4laS4laSIKCQkJICAgKGxvZ2FuZCBoZXgtYWRkciAyNTUpCgkJCSAgIChs b2dhbmQgKGxzaCBoZXgtYWRkciAtOCkgMjU1KQoJCQkgICAobG9nYW5kIChsc2ggaGV4LWFkZHIg LTE2KSAyNTUpCgkJCSAgIChsb2dhbmQgKGxzaCBoZXgtYWRkciAtMjQpIDI1NSkpKSkpCiAgICAK CihkZWZ1biBlbndjLW5tLWdldC1nYXRld2F5ICh3aXJlZCBpZCkKICAobGV0ICgocHJvcHMgKGVu d2Mtbm0tZ2V0LXNldHRpbmdzIChudGggaWQgZW53Yy1hY2Nlc3MtcG9pbnRzKSkpCglpcGFkZHIg cmV0LWFkZHIpCiAgICAoc2V0cSBpcGFkZHIgKG50aCAyIChjYWFyIChjYWRyIChhc3NvYyAiYWRk cmVzc2VzIgoJCQkJCSAgIChjYWRyIChhc3NvYyAiaXB2NCIKCQkJCQkJCXByb3BzKSkpKSkpKQog ICAgKHNldHEgcmV0LWFkZHIgKGVud2Mtbm0tY29udmVydC1hZGRyIGlwYWRkcikpKSkKCihkZWZ1 biBlbndjLW5tLWdldC1kbnMgKHdpcmVkIGlkKQogIChsZXQgKChwcm9wcyAoZW53Yy1ubS1nZXQt c2V0dGluZ3MgKG50aCBpZCBlbndjLWFjY2Vzcy1wb2ludHMpKSkKCWRucy1saXN0KQogICAgKHNl dHEgZG5zLWxpc3QgKGNhciAoY2FkciAoYXNzb2MgImRucyIgKGNhZHIgKGFzc29jICJpcHY0IgoJ CQkJCQkJcHJvcHMpKSkpKSkKICAgIChtYXBjYXIgJ2Vud2Mtbm0tY29udmVydC1hZGRyCgkgICAg ZG5zLWxpc3QpKSkKCihkZWZ1biBlbndjLW5tLXNldHVwLXNldHRpbmdzIChpZCBzZXR0aW5ncykK ICAobGV0ICgocHJvcHMgKGVud2Mtbm0tZ2V0LXNldHRpbmdzIChudGggaWQgZW53Yy1hY2Nlc3Mt cG9pbnRzKSkpCglyZXQtbGlzdCkKICAgIChzZXRjZHIgKGFzc29jICJhZGRyZXNzZXMiIChjYWRy IChhc3NvYyAiaXB2NCIgcHJvcHMpKSkKCSAgICAobGlzdCAobGlzdCAobGlzdCAobGlzdCAoZW53 Yy1ubS1hZGRyLWJhY2sKCQkJCSAgICAgKGNkciAoYXNzb2MgImFkZHIiIHNldHRpbmdzKSkpCgkJ CQkgICAgKGVud2Mtbm0tbmV0bWFzay10by1wcmVmaXggKGVud2Mtbm0tYWRkci1iYWNrCgkJCQkJ CQkJKGNkciAoYXNzb2MgIm5ldG1hc2siCgkJCQkJCQkJCSAgICBzZXR0aW5ncykpKSkKCQkJCSAg ICAoZW53Yy1ubS1hZGRyLWJhY2sKCQkJCSAgICAgKGNkciAoYXNzb2MgImdhdGV3YXkiIHNldHRp bmdzKSkpKSkpKSkKICAgIChzZXRjZHIgKGFzc29jICJkbnMiIChjYWRyIChhc3NvYyAiaXB2NCIg cHJvcHMpKSkKCSAgICAobGlzdCAobGlzdCAobGlzdCAoZW53Yy1ubS1hZGRyLWJhY2sKCQkJICAg ICAgIChjZHIgKGFzc29jICJkbnMxIiBzZXR0aW5ncykpKQoJCQkgICAgICAoZW53Yy1ubS1hZGRy LWJhY2sKCQkJICAgICAgIChjZHIgKGFzc29jICJkbnMyIiBzZXR0aW5ncykpKSkpKSkKICAgICkp CgooZGVmdW4gZW53Yy1ubS1zYXZlLW53LXNldHRpbmdzICh3aXJlZCBpZCBzZXR0aW5ncykKICAo ZGJ1cy1jYWxsLW1ldGhvZCA6c3lzdGVtCgkJICAgIGVud2Mtbm0tZGJ1cy1zZXJ2aWNlCgkJICAg IChudGggaWQgZW53Yy1hY2Nlc3MtcG9pbnRzKQoJCSAgICBlbndjLW5tLWRidXMtY29ubmVjdGlv bnMtaW50ZXJmYWNlCgkJICAgIDp0aW1lb3V0IDI1MDAwCgkJICAgICJVcGRhdGUiCgkJICAgIChl bndjLW5tLXNldHVwLXNldHRpbmdzIGlkIHNldHRpbmdzKSkpCgoocHJvdmlkZSAnZW53Yy1ubSkK AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --=-=-= Content-Type: text/plain Unfortunately, I haven't gotten a chance to set it up anywhere, but here's the source. It's only four files. Wicd should be working pretty well, as it's the network manager I use. I'm not sure how well NetworkManager will be working. I know it can't setup profiles yet, as I haven't quite got that finished. Let me know if there are any problems. Ian D Bastien writes: > ... maybe first send a link pointing at the > code, so that people can test? I use wicd and can test with this > manager. > > Thanks! --=-=-=--