From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Amirouche Boubekki Newsgroups: gmane.lisp.guile.user Subject: Mutable Graph Guile module Date: Sat, 09 Jan 2016 14:49:08 +0100 Message-ID: <826655d8add8a45e7b2e8b9a78a7cf50@hypermove.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_d8ed480351d4209938cbbb45061a63c1" X-Trace: ger.gmane.org 1452347376 20936 80.91.229.3 (9 Jan 2016 13:49:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 9 Jan 2016 13:49:36 +0000 (UTC) To: Guile User Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Sat Jan 09 14:49:27 2016 Return-path: Envelope-to: guile-user@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 1aHttW-0005WK-N6 for guile-user@m.gmane.org; Sat, 09 Jan 2016 14:49:26 +0100 Original-Received: from localhost ([::1]:40692 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aHttW-0006ZA-1k for guile-user@m.gmane.org; Sat, 09 Jan 2016 08:49:26 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aHttM-0006YC-0Y for guile-user@gnu.org; Sat, 09 Jan 2016 08:49:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aHttI-000505-OE for guile-user@gnu.org; Sat, 09 Jan 2016 08:49:15 -0500 Original-Received: from relay5-d.mail.gandi.net ([217.70.183.197]:52195) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aHttI-000501-Fb for guile-user@gnu.org; Sat, 09 Jan 2016 08:49:12 -0500 Original-Received: from mfilter20-d.gandi.net (mfilter20-d.gandi.net [217.70.178.148]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id 9642341C08B for ; Sat, 9 Jan 2016 14:49:11 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mfilter20-d.gandi.net Original-Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter20-d.gandi.net (mfilter20-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id G0EPkK4tID8e for ; Sat, 9 Jan 2016 14:49:09 +0100 (CET) X-Originating-IP: 10.58.1.142 Original-Received: from webmail.gandi.net (webmail2-d.mgt.gandi.net [10.58.1.142]) (Authenticated sender: amirouche@hypermove.net) by relay5-d.mail.gandi.net (Postfix) with ESMTPA id E3D9041C074 for ; Sat, 9 Jan 2016 14:49:08 +0100 (CET) X-Sender: amirouche@hypermove.net User-Agent: Roundcube Webmail/1.1.2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 217.70.183.197 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:12301 Archived-At: --=_d8ed480351d4209938cbbb45061a63c1 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed Héllo, I happy to share with all of you a small graph mutable graph data structure built with hashtables. It include tests and Breath First Search algorithm. -- Amirouche ~ amz3 ~ http://www.hyperdev.fr --=_d8ed480351d4209938cbbb45061a63c1 Content-Transfer-Encoding: base64 Content-Type: text/plain; name=graph.scm Content-Disposition: attachment; filename=graph.scm; size=10865 Ozs7OyBncmFwaC5zY20gLS0tIG1pbmltYWwgZ3JhcGggbW9kdWxlIGZvciBHdWlsZQo7Ozs7Cjs7 OzsgQ29weXJpZ2h0IChDKSAyMDE2IEFtaXJvdWNoZSBCb3ViZWtraSA8YW1pcm91Y2hlQGh5cGVy bW92ZS5uZXQ+Cjs7OzsKOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCjs7OzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo7Ozs7IHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KOzs7 Owo7Ozs7IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAo7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKOzs7OyBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo7Ozs7Cjs7OzsgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo7Ozs7 IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCihkZWZpbmUtbW9kdWxlIChncmFw aCkpCgoodXNlLW1vZHVsZXMgKHNyZmkgc3JmaS05KSkKKHVzZS1tb2R1bGVzIChzcmZpIHNyZmkt MjYpKQoodXNlLW1vZHVsZXMgKHNyZmkgc3JmaS02OSkpCgoodXNlLW1vZHVsZXMgKGljZS05IHEp KQoKOzs7IGdlbmVyYXRlLXVpZCBoZWxwZXIKCihkZWZpbmUtcHVibGljIChnZW5lcmF0ZS11aWQg ZXhpc3RzPykKICAiR2VuZXJhdGUgYSByYW5kb20gc3RyaW5nIG1hZGUgdXAgYWxwaGFudW1lcmlj IGFzY2lpIGNoYXJzIHRoYXQgZG9lc24ndCBleGlzdHMKICAgYWNjb3JkaW5nIHRvIGBleGlzdHM/ YCIKICAoZGVmaW5lIChyYW5kb20taWQpCiAgICAoZGVmaW5lIENIQVJTICIwMTIzNDU2Nzg5QVpF UlRZVUlPUFFTREZHSEpLTE1XWENWQk4iKQogICAgOzsgYXBwZW5kIDggYWxwaGFudW1lcmljIGNo YXJzIGZyb20gYENIQVJTYAogICAgKGxldCBsb29wICgoY291bnQgOCkKICAgICAgICAgICAgICAg KGlkICIiKSkKICAgICAgKGlmIChlcT8gY291bnQgMCkKICAgICAgICAgIGlkCiAgICAgICAgICAo bG9vcCAoMS0gY291bnQpIChmb3JtYXQgI2YgIn5hfmEiIGlkIChzdHJpbmctcmVmIENIQVJTIChy YW5kb20gMzYpKSkpKSkpCgogIChsZXQgbG9vcCAoKQogICAgOzsgZ2VuZXJhdGUgYSByYW5kb20g dWlkIHVudGlsIGl0IGZpbmQgYW4gaWQgdGhhdCBkb2Vzbid0IGFscmVhZHkgZXhpc3RzPwogICAg KGxldCAoKGlkIChyYW5kb20taWQpKSkKICAgICAgKGlmIChleGlzdHM/IGlkKSAobG9vcCkgaWQp KSkpCgoKOzs7IGdyYXBoCgooZGVmaW5lLXJlY29yZC10eXBlIDxncmFwaD4KICAoJW1ha2UtZ3Jh cGggbmFtZSBwcm9wZXJ0aWVzIHZlcnRpY2VzIGVkZ2VzKQogIGdyYXBoPwogIChuYW1lIGdyYXBo LW5hbWUpCiAgKHByb3BlcnRpZXMgZ3JhcGgtcHJvcGVydGllcykKICAodmVydGljZXMgZ3JhcGgt dmVydGljZXMpCiAgKGVkZ2VzIGdyYXBoLWVkZ2VzKSkKCgooZGVmaW5lLXB1YmxpYyAobWFrZS1n cmFwaCBuYW1lKQogICglbWFrZS1ncmFwaCBuYW1lIChtYWtlLWhhc2gtdGFibGUpIChtYWtlLWhh c2gtdGFibGUpIChtYWtlLWhhc2gtdGFibGUpKSkKCihkZWZpbmUtcHVibGljIChncmFwaC1yZWYg Z3JhcGgga2V5KQogIChoYXNoLXRhYmxlLXJlZiAoZ3JhcGgtcHJvcGVydGllcyBncmFwaCkga2V5 KSkKCihkZWZpbmUtcHVibGljIChncmFwaC1zZXQhIGdyYXBoIGtleSB2YWx1ZSkKICAoaGFzaC10 YWJsZS1zZXQhIChncmFwaC1wcm9wZXJ0aWVzIGdyYXBoKSBrZXkgdmFsdWUpKQoKKGRlZmluZS1w dWJsaWMgKGdyYXBoLXZlcnRleC1yZWYgZ3JhcGggdWlkKQogIChoYXNoLXRhYmxlLXJlZiAoZ3Jh cGgtdmVydGljZXMgZ3JhcGgpIHVpZCAobGFtYmRhICgpICNmYWxzZSkpKQoKKGRlZmluZS1wdWJs aWMgKGdyYXBoLWVkZ2UtcmVmIGdyYXBoIHVpZCkKICAoaGFzaC10YWJsZS1yZWYgKGdyYXBoLWVk Z2VzIGdyYXBoKSB1aWQgKGxhbWJkYSAoKSAjZmFsc2UpKSkKCihkZWZpbmUtcHVibGljIChncmFw aC1mb3ItZWFjaC12ZXJ0ZXggZ3JhcGggcHJvYykKICAoZm9yLWVhY2ggcHJvYyAoaGFzaC10YWJs ZS12YWx1ZXMgKGdyYXBoLXZlcnRpY2VzIGdyYXBoKSkpKQoKCjs7OyB2ZXJ0ZXgKCihkZWZpbmUt cmVjb3JkLXR5cGUgPHZlcnRleD4KICAobWFrZS12ZXJ0ZXggZ3JhcGggdWlkIGluY29taW5ncyBw cm9wZXJ0aWVzIG91dGdvaW5ncykKICB2ZXJ0ZXg/CiAgKGdyYXBoIHZlcnRleC1ncmFwaCkKICAo dWlkIHZlcnRleC11aWQpCiAgKGluY29taW5ncyB2ZXJ0ZXgtaW5jb21pbmdzIHZlcnRleC1pbmNv bWluZ3MhKQogIChwcm9wZXJ0aWVzIHZlcnRleC1wcm9wZXJ0aWVzKQogIChvdXRnb2luZ3MgdmVy dGV4LW91dGdvaW5ncyB2ZXJ0ZXgtb3V0Z29pbmdzISkpCgooZGVmaW5lLXB1YmxpYyAoZ3JhcGgt bWFrZS12ZXJ0ZXggZ3JhcGgpCiAgKGxldCogKCh1aWQgKGdlbmVyYXRlLXVpZCAoY3V0IGdyYXBo LXZlcnRleC1yZWYgZ3JhcGggPD4pKSkKICAgICAgICAgKHZlcnRleCAobWFrZS12ZXJ0ZXggZ3Jh cGggdWlkICcoKSAobWFrZS1oYXNoLXRhYmxlKSAnKCkpKSkKICAgIChoYXNoLXRhYmxlLXNldCEg KGdyYXBoLXZlcnRpY2VzIGdyYXBoKSB1aWQgdmVydGV4KQogICAgdmVydGV4KSkKCihkZWZpbmUt cHVibGljICh2ZXJ0ZXgtcmVmIHZlcnRleCBrZXkpCiAgKGhhc2gtdGFibGUtcmVmICh2ZXJ0ZXgt cHJvcGVydGllcyB2ZXJ0ZXgpIGtleSkpCgooZGVmaW5lLXB1YmxpYyAodmVydGV4LXNldCEgdmVy dGV4IGtleSB2YWx1ZSkKICAoaGFzaC10YWJsZS1zZXQhICh2ZXJ0ZXgtcHJvcGVydGllcyB2ZXJ0 ZXgpIGtleSB2YWx1ZSkpCgoKOzs7IGVkZ2UKCihkZWZpbmUtcmVjb3JkLXR5cGUgPGVkZ2U+CiAg KG1ha2UtZWRnZSBncmFwaCB1aWQgc3RhcnQgcHJvcGVydGllcyBlbmQpCiAgZWRnZT8KICAoZ3Jh cGggZWRnZS1ncmFwaCkKICAodWlkIGVkZ2UtdWlkKQogIChzdGFydCBlZGdlLXN0YXJ0IGVkZ2Ut c3RhcnQhKQogIChwcm9wZXJ0aWVzIGVkZ2UtcHJvcGVydGllcykKICAoZW5kIGVkZ2UtZW5kIGVk Z2UtZW5kISkpCgoKKGRlZmluZS1wdWJsaWMgKGdyYXBoLW1ha2UtZWRnZSBncmFwaCBzdGFydCBl bmQpCiAgKGxldCogKCh1aWQgKGdlbmVyYXRlLXVpZCAoY3V0IGdyYXBoLWVkZ2UtcmVmIGdyYXBo IDw+KSkpCiAgICAgICAgIChlZGdlIChtYWtlLWVkZ2UgZ3JhcGggdWlkICh2ZXJ0ZXgtdWlkIHN0 YXJ0KSAobWFrZS1oYXNoLXRhYmxlKSAodmVydGV4LXVpZCBlbmQpKSkpCiAgICA7OyBhZGQgdG8g Z3JhcGgKICAgIChoYXNoLXRhYmxlLXNldCEgKGdyYXBoLWVkZ2VzIGdyYXBoKSB1aWQgZWRnZSkK ICAgIDs7IHVwZGF0ZSBzdGFydCB2ZXJ0ZXgKICAgICh2ZXJ0ZXgtb3V0Z29pbmdzISBzdGFydCAo Y29ucyB1aWQgKHZlcnRleC1vdXRnb2luZ3Mgc3RhcnQpKSkKICAgIDs7IHVwZGF0ZSBlbmQgdmVy dGV4CiAgICAodmVydGV4LWluY29taW5ncyEgZW5kIChjb25zIHVpZCAodmVydGV4LWluY29taW5n cyBlbmQpKSkKICAgIGVkZ2UpKQoKKGRlZmluZS1wdWJsaWMgKGVkZ2UtcmVmIGVkZ2Uga2V5KQog IChoYXNoLXRhYmxlLXJlZiAoZWRnZS1wcm9wZXJ0aWVzIGVkZ2UpIGtleSkpCgooZGVmaW5lLXB1 YmxpYyAoZWRnZS1zZXQhIGVkZ2Uga2V5IHZhbHVlKQogIChoYXNoLXRhYmxlLXNldCEgKGVkZ2Ut cHJvcGVydGllcyBlZGdlKSBrZXkgdmFsdWUpKQoKKGRlZmluZS1wdWJsaWMgKGVkZ2UtZGVsZXRl ISBlZGdlKQogIChsZXQgKChncmFwaCAoZWRnZS1ncmFwaCBlZGdlKSkpCiAgICAoaGFzaC10YWJs ZS1kZWxldGUhIChncmFwaC1lZGdlcyBncmFwaCkgKGVkZ2UtdWlkIGVkZ2UpKSkKICAobGV0KiAo KHVpZCAoZWRnZS1zdGFydCBlZGdlKSkKICAgICAgICAgKHN0YXJ0IChncmFwaC12ZXJ0ZXgtcmVm IChlZGdlLWdyYXBoIGVkZ2UpIHVpZCkpKQogICAgKHZlcnRleC1vdXRnb2luZ3MhIHN0YXJ0IChk ZWxldGUgKGVkZ2UtdWlkIGVkZ2UpICh2ZXJ0ZXgtb3V0Z29pbmdzIHN0YXJ0KSkpKQogIChsZXQq ICgodWlkIChlZGdlLWVuZCBlZGdlKSkKICAgICAgICAgKGVuZCAoZ3JhcGgtdmVydGV4LXJlZiAo ZWRnZS1ncmFwaCBlZGdlKSB1aWQpKSkKICAgICh2ZXJ0ZXgtaW5jb21pbmdzISBlbmQgKGRlbGV0 ZSAoZWRnZS11aWQgZWRnZSkgKHZlcnRleC1pbmNvbWluZ3MgZW5kKSkpKSkKCgo7OzsgaGVscGVy cwoKKGRlZmluZS1wdWJsaWMgKHZlcnRleC1hZGphY2VudHMgdmVydGV4KQogIChsZXQqICgocmVm LWVkZ2UgKGN1dCBncmFwaC1lZGdlLXJlZiAodmVydGV4LWdyYXBoIHZlcnRleCkgPD4pKSkKICAg IChhcHBlbmQgKG1hcCAoY29tcG9zZSBlZGdlLWVuZCByZWYtZWRnZSkgKHZlcnRleC1vdXRnb2lu Z3MgdmVydGV4KSkKICAgICAgICAgICAgKG1hcCAoY29tcG9zZSBlZGdlLXN0YXJ0IHJlZi1lZGdl KSAodmVydGV4LWluY29taW5ncyB2ZXJ0ZXgpKSkpKQoKCjs7OyBhbGdvcml0aG1zCgo7OyBzYW5p dGl6ZSBuYW1lcyBvZiBxdWV1ZSBwcm9jZWR1cmUKKGRlZmluZSBtYWtlLXF1ZXVlIG1ha2UtcSkK KGRlZmluZSBlbnF1ZXVlISBlbnEhKQooZGVmaW5lIGRlcXVldWUhIGRlcSEpCihkZWZpbmUgcXVl dWUtZW1wdHk/IHEtZW1wdHk/KQoKCihkZWZpbmUtcHVibGljIChiZnMgcHJvYyBncmFwaCByb290 KQogIChsZXQgKChxdWV1ZSAobWFrZS1xdWV1ZSkpCiAgICAgICAgKHZpc2l0ZWQgKG1ha2UtaGFz aC10YWJsZSkpKQoKICAgIChoYXNoLXRhYmxlLXNldCEgdmlzaXRlZCByb290ICN0cnVlKQogICAg KGVucXVldWUhIHF1ZXVlIHJvb3QpCgogICAgKHByb2Mgcm9vdCkKCiAgICAod2hpbGUgKG5vdCAo cXVldWUtZW1wdHk/IHF1ZXVlKSkKICAgICAgKGxldCAoKGN1cnJlbnQgKGRlcXVldWUhIHF1ZXVl KSkpCiAgICAgICAgKGxldCBuZXh0ICgoYWRqYWNlbnRzICh2ZXJ0ZXgtYWRqYWNlbnRzIGN1cnJl bnQpKSkKICAgICAgICAgICh1bmxlc3MgKG51bGw/IGFkamFjZW50cykKICAgICAgICAgICAgKGxl dCAoKGFkamFjZW50IChncmFwaC12ZXJ0ZXgtcmVmIGdyYXBoIChjYXIgYWRqYWNlbnRzKSkpKQog ICAgICAgICAgICAgICh1bmxlc3MgKGhhc2gtdGFibGUtcmVmIHZpc2l0ZWQgYWRqYWNlbnQgKGxh bWJkYSAoKSAjZmFsc2UpKQogICAgICAgICAgICAgICAgKHByb2MgYWRqYWNlbnQpCiAgICAgICAg ICAgICAgICAoaGFzaC10YWJsZS1zZXQhIHZpc2l0ZWQgYWRqYWNlbnQgI3RydWUpCiAgICAgICAg ICAgICAgICAoZW5xdWV1ZSEgcXVldWUgYWRqYWNlbnQpCiAgICAgICAgICAgICAgICAobmV4dCAo Y2RyIGFkamFjZW50cykpKSkpKSkpKSkKCgoKOzs7IHRlc3QtY2hlY2sKCihkZWZpbmUtc3ludGF4 IHRlc3QtY2hlY2sKICAoc3ludGF4LXJ1bGVzICgpCiAgICAoKF8gdGl0bGUgdGVzdGVkLWV4cHJl c3Npb24gZXhwZWN0ZWQtcmVzdWx0KQogICAgIChiZWdpbgogICAgICAgKGZvcm1hdCAjdHJ1ZSAi KiBDaGVja2luZyB+c1xuIiB0aXRsZSkKICAgICAgIChsZXQqICgoZXhwZWN0ZWQgZXhwZWN0ZWQt cmVzdWx0KQogICAgICAgICAgICAgIChwcm9kdWNlZCB0ZXN0ZWQtZXhwcmVzc2lvbikpCiAgICAg ICAgICh1bmxlc3MgKGVxdWFsPyBleHBlY3RlZCBwcm9kdWNlZCkKICAgICAgICAgICAgIChmb3Jt YXQgI3RydWUgIkV4cGVjdGVkOiB+c1xuIiBleHBlY3RlZCkKICAgICAgICAgICAgIChmb3JtYXQg I3RydWUgIkNvbXB1dGVkOiB+c1xuIiBwcm9kdWNlZCkpKSkpKSkKCih3aGVuIChnZXRlbnYgIkNI RUNLIikKICAodGVzdC1jaGVjayAibnVsbCB0ZXN0IgogICAgICAgICAgICAgICN0cnVlCiAgICAg ICAgICAgICAgI3RydWUpCgogICh0ZXN0LWNoZWNrICJncmFwaCBnZXQvc2V0IHByb3BlcnRpZXMi CiAgICAgICAgICAgICAgKGxldCAoKGdyYXBoIChtYWtlLWdyYXBoICJ0ZXN0IikpKQogICAgICAg ICAgICAgICAgKGdyYXBoLXNldCEgZ3JhcGggImtleSIgInZhbHVlIikKICAgICAgICAgICAgICAg IChncmFwaC1yZWYgZ3JhcGggImtleSIpKQogICAgICAgICAgICAgICJ2YWx1ZSIpCgogICh0ZXN0 LWNoZWNrICJncmFwaC1tYWtlLXZlcnRleCIKICAgICAgICAgICAgICAobGV0KiAoKGdyYXBoICht YWtlLWdyYXBoICJ0ZXN0IikpCiAgICAgICAgICAgICAgICAgICAgICh2ZXJ0ZXggKGdyYXBoLW1h a2UtdmVydGV4IGdyYXBoKSkpCiAgICAgICAgICAgICAgICAodmVydGV4LXVpZCB2ZXJ0ZXgpKQog ICAgICAgICAgICAgICJJNVFCRTJYNyIpCgogICh0ZXN0LWNoZWNrICJncmFwaC12ZXJ0ZXgtcmVm IgogICAgICAgICAgICAgIChsZXQqICgoZ3JhcGggKG1ha2UtZ3JhcGggInRlc3QiKSkKICAgICAg ICAgICAgICAgICAgICAgKHZlcnRleCAoZ3JhcGgtbWFrZS12ZXJ0ZXggZ3JhcGgpKSkKICAgICAg ICAgICAgICAgICh2ZXJ0ZXgtdWlkIChncmFwaC12ZXJ0ZXgtcmVmIGdyYXBoICh2ZXJ0ZXgtdWlk IHZlcnRleCkpKSkKICAgICAgICAgICAgICAiQUNORUc1UUgiKQoKICAodGVzdC1jaGVjayAidmVy dGV4IGdldC9zZXQgcHJvcGVydGllcyIKICAgICAgICAgICAgICAobGV0KiAoKGdyYXBoIChtYWtl LWdyYXBoICJ0ZXN0IikpCiAgICAgICAgICAgICAgICAgICAgICh2ZXJ0ZXggKGdyYXBoLW1ha2Ut dmVydGV4IGdyYXBoKSkpCiAgICAgICAgICAgICAgICAodmVydGV4LXNldCEgdmVydGV4ICJrZXki ICJ2YWx1ZSIpCiAgICAgICAgICAgICAgICAodmVydGV4LXJlZiB2ZXJ0ZXggImtleSIpKQogICAg ICAgICAgICAgICJ2YWx1ZSIpCgogICh0ZXN0LWNoZWNrICJncmFwaC1tYWtlLWVkZ2UiCiAgICAg ICAgICAgICAgKGxldCogKChncmFwaCAobWFrZS1ncmFwaCAidGVzdCIpKQogICAgICAgICAgICAg ICAgICAgICAoc3RhcnQgKGdyYXBoLW1ha2UtdmVydGV4IGdyYXBoKSkKICAgICAgICAgICAgICAg ICAgICAgKGVuZCAoZ3JhcGgtbWFrZS12ZXJ0ZXggZ3JhcGgpKQogICAgICAgICAgICAgICAgICAg ICAoZWRnZSAoZ3JhcGgtbWFrZS1lZGdlIGdyYXBoIHN0YXJ0IGVuZCkpKQogICAgICAgICAgICAg ICAgKGVkZ2UtdWlkIGVkZ2UpKQogICAgICAgICAgICAgICJGSkM0RlhWWCIpCgogICh0ZXN0LWNo ZWNrICJncmFwaC1lZGdlLXJlZiIKICAgICAgICAgICAgICAobGV0KiAoKGdyYXBoIChtYWtlLWdy YXBoICJ0ZXN0IikpCiAgICAgICAgICAgICAgICAgICAgIChzdGFydCAoZ3JhcGgtbWFrZS12ZXJ0 ZXggZ3JhcGgpKQogICAgICAgICAgICAgICAgICAgICAoZW5kIChncmFwaC1tYWtlLXZlcnRleCBn cmFwaCkpCiAgICAgICAgICAgICAgICAgICAgIChlZGdlIChncmFwaC1tYWtlLWVkZ2UgZ3JhcGgg c3RhcnQgZW5kKSkpCiAgICAgICAgICAgICAgICAoZWRnZS11aWQgKGdyYXBoLWVkZ2UtcmVmIGdy YXBoIChlZGdlLXVpZCBlZGdlKSkpKQogICAgICAgICAgICAgICI2RDhDVDg0SyIpCgogICh0ZXN0 LWNoZWNrICJlZGdlIGdldC9zZXQiCiAgICAgICAgICAgICAgKGxldCogKChncmFwaCAobWFrZS1n cmFwaCAidGVzdCIpKQogICAgICAgICAgICAgICAgICAgICAoc3RhcnQgKGdyYXBoLW1ha2UtdmVy dGV4IGdyYXBoKSkKICAgICAgICAgICAgICAgICAgICAgKGVuZCAoZ3JhcGgtbWFrZS12ZXJ0ZXgg Z3JhcGgpKQogICAgICAgICAgICAgICAgICAgICAoZWRnZSAoZ3JhcGgtbWFrZS1lZGdlIGdyYXBo IHN0YXJ0IGVuZCkpKQogICAgICAgICAgICAgICAgKGVkZ2Utc2V0ISBlZGdlICdrZXkgJ3ZhbHVl KQogICAgICAgICAgICAgICAgKGVkZ2UtcmVmIGVkZ2UgJ2tleSkpCiAgICAgICAgICAgICAgJ3Zh bHVlKQoKICAodGVzdC1jaGVjayAibWFrZSBlZGdlIGFuZCBjaGVjayBzdGFydCBvdXRnb2luZ3Mi CiAgICAgICAgICAgICAgKGxldCogKChncmFwaCAobWFrZS1ncmFwaCAidGVzdCIpKQogICAgICAg ICAgICAgICAgICAgICAoc3RhcnQgKGdyYXBoLW1ha2UtdmVydGV4IGdyYXBoKSkKICAgICAgICAg ICAgICAgICAgICAgKGVuZCAoZ3JhcGgtbWFrZS12ZXJ0ZXggZ3JhcGgpKQogICAgICAgICAgICAg ICAgICAgICAoZWRnZSAoZ3JhcGgtbWFrZS1lZGdlIGdyYXBoIHN0YXJ0IGVuZCkpKQogICAgICAg ICAgICAgICAgKHZlcnRleC1vdXRnb2luZ3Mgc3RhcnQpKQogICAgICAgICAgICAgICcoIkNHVUU0 SlFYIikpCgogICh0ZXN0LWNoZWNrICJtYWtlIGVkZ2UgYW5kIGNoZWNrIGVuZCBpbmNvbWluZ3Mi CiAgICAgICAgICAgICAgKGxldCogKChncmFwaCAobWFrZS1ncmFwaCAidGVzdCIpKQogICAgICAg ICAgICAgICAgICAgICAoc3RhcnQgKGdyYXBoLW1ha2UtdmVydGV4IGdyYXBoKSkKICAgICAgICAg ICAgICAgICAgICAgKGVuZCAoZ3JhcGgtbWFrZS12ZXJ0ZXggZ3JhcGgpKQogICAgICAgICAgICAg ICAgICAgICAoZWRnZSAoZ3JhcGgtbWFrZS1lZGdlIGdyYXBoIHN0YXJ0IGVuZCkpKQogICAgICAg ICAgICAgICAgKHZlcnRleC1pbmNvbWluZ3MgZW5kKSkKICAgICAgICAgICAgICAnKCJGSlVYMEo3 MCIpKQoKICAodGVzdC1jaGVjayAibWFrZSBlZGdlLCBkZWxldGUgYW5kIGNoZWNrIHN0YXJ0IG91 dGdvaW5ncyIKICAgICAgICAgICAgICAobGV0KiAoKGdyYXBoIChtYWtlLWdyYXBoICJ0ZXN0Iikp CiAgICAgICAgICAgICAgICAgICAgIChzdGFydCAoZ3JhcGgtbWFrZS12ZXJ0ZXggZ3JhcGgpKQog ICAgICAgICAgICAgICAgICAgICAoZW5kIChncmFwaC1tYWtlLXZlcnRleCBncmFwaCkpCiAgICAg ICAgICAgICAgICAgICAgIChlZGdlIChncmFwaC1tYWtlLWVkZ2UgZ3JhcGggc3RhcnQgZW5kKSkp CiAgICAgICAgICAgICAgICAoZWRnZS1kZWxldGUhIGVkZ2UpCiAgICAgICAgICAgICAgICAobWFw IGVkZ2UtdWlkICh2ZXJ0ZXgtb3V0Z29pbmdzIHN0YXJ0KSkpCiAgICAgICAgICAgICAgJygpKQoK ICAodGVzdC1jaGVjayAibWFrZSBlZGdlLCBkZWxldGUgYW5kIGNoZWNrIGVuZCBpbmNvbWluZ3Mi CiAgICAgICAgICAgICAgKGxldCogKChncmFwaCAobWFrZS1ncmFwaCAidGVzdCIpKQogICAgICAg ICAgICAgICAgICAgICAoc3RhcnQgKGdyYXBoLW1ha2UtdmVydGV4IGdyYXBoKSkKICAgICAgICAg ICAgICAgICAgICAgKGVuZCAoZ3JhcGgtbWFrZS12ZXJ0ZXggZ3JhcGgpKQogICAgICAgICAgICAg ICAgICAgICAoZWRnZSAoZ3JhcGgtbWFrZS1lZGdlIGdyYXBoIHN0YXJ0IGVuZCkpKQogICAgICAg ICAgICAgICAgKGVkZ2UtZGVsZXRlISBlZGdlKQogICAgICAgICAgICAgICAgKG1hcCBlZGdlLXVp ZCAodmVydGV4LWluY29taW5ncyBlbmQpKSkKICAgICAgICAgICAgICAnKCkpCgogICh0ZXN0LWNo ZWNrICJiZnMgMSIKICAgICAgICAgICAgICAobGV0KiAoKGdyYXBoIChtYWtlLWdyYXBoICJ0ZXN0 IGJmcyIpKQogICAgICAgICAgICAgICAgICAgICAoc3RhcnQgKGdyYXBoLW1ha2UtdmVydGV4IGdy YXBoKSkKICAgICAgICAgICAgICAgICAgICAgKGVuZCAoZ3JhcGgtbWFrZS12ZXJ0ZXggZ3JhcGgp KQogICAgICAgICAgICAgICAgICAgICAoZWRnZSAoZ3JhcGgtbWFrZS1lZGdlIGdyYXBoIHN0YXJ0 IGVuZCkpCiAgICAgICAgICAgICAgICAgICAgIChvdXQgJygpKSkKICAgICAgICAgICAgICAgIChi ZnMgKGxhbWJkYSAodmVydGV4KQogICAgICAgICAgICAgICAgICAgICAgIChzZXQhIG91dCAoY29u cyAodmVydGV4LXVpZCB2ZXJ0ZXgpIG91dCkpKQogICAgICAgICAgICAgICAgICAgICBncmFwaAog ICAgICAgICAgICAgICAgICAgICBzdGFydCkKICAgICAgICAgICAgICAgIG91dCkKICAgICAgICAg ICAgICAnKCJCRkdPTlUyNyIgIjNVMEZPWjNTIikpCgogICh0ZXN0LWNoZWNrICJiZnMgMiIKICAg ICAgICAgICAgICAobGV0KiAoKGdyYXBoIChtYWtlLWdyYXBoICJ0ZXN0IGJmcyIpKQogICAgICAg ICAgICAgICAgICAgICAob25lIChncmFwaC1tYWtlLXZlcnRleCBncmFwaCkpCiAgICAgICAgICAg ICAgICAgICAgICh0d28gKGdyYXBoLW1ha2UtdmVydGV4IGdyYXBoKSkKICAgICAgICAgICAgICAg ICAgICAgKHRocmVlIChncmFwaC1tYWtlLXZlcnRleCBncmFwaCkpCiAgICAgICAgICAgICAgICAg ICAgIChmb3VyIChncmFwaC1tYWtlLXZlcnRleCBncmFwaCkpCiAgICAgICAgICAgICAgICAgICAg IChfIChncmFwaC1tYWtlLWVkZ2UgZ3JhcGggb25lIHR3bykpCiAgICAgICAgICAgICAgICAgICAg IChfIChncmFwaC1tYWtlLWVkZ2UgZ3JhcGggdHdvIHRocmVlKSkKICAgICAgICAgICAgICAgICAg ICAgKF8gKGdyYXBoLW1ha2UtZWRnZSBncmFwaCB0aHJlZSBvbmUpKQogICAgICAgICAgICAgICAg ICAgICAoXyAoZ3JhcGgtbWFrZS1lZGdlIGdyYXBoIHRocmVlIGZvdXIpKQogICAgICAgICAgICAg ICAgICAgICAob3V0ICcoKSkpCiAgICAgICAgICAgICAgICAoYmZzIChsYW1iZGEgKHZlcnRleCkK ICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBvdXQgKGNvbnMgKHZlcnRleC11aWQgdmVydGV4 KSBvdXQpKSkKICAgICAgICAgICAgICAgICAgICAgZ3JhcGgKICAgICAgICAgICAgICAgICAgICAg b25lKQogICAgICAgICAgICAgICAgb3V0KQogICAgICAgICAgICAgICcoIkRGRThKSkZHIiAiQlZE NE5CREIiICJLQkJUMzRBQSIgIlBUVU1UTFY0IikpCiAgKQo= --=_d8ed480351d4209938cbbb45061a63c1--