From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mike Gran Newsgroups: gmane.lisp.guile.user Subject: Hack, zile, tetris Date: Wed, 15 Feb 2012 22:57:23 -0800 (PST) Message-ID: <1329375443.81756.YahooMailNeo@web37901.mail.mud.yahoo.com> Reply-To: Mike Gran NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="268625343-1586957076-1329375443=:81756" X-Trace: dough.gmane.org 1329375464 905 80.91.229.3 (16 Feb 2012 06:57:44 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 16 Feb 2012 06:57:44 +0000 (UTC) To: Guile User Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Feb 16 07:57:40 2012 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RxvHf-0005JB-S3 for guile-user@m.gmane.org; Thu, 16 Feb 2012 07:57:40 +0100 Original-Received: from localhost ([::1]:44056 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RxvHe-0007Sz-UK for guile-user@m.gmane.org; Thu, 16 Feb 2012 01:57:38 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:52530) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RxvHW-0007Su-Qe for guile-user@gnu.org; Thu, 16 Feb 2012 01:57:34 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RxvHT-0001AP-1h for guile-user@gnu.org; Thu, 16 Feb 2012 01:57:30 -0500 Original-Received: from nm14.bullet.mail.sp2.yahoo.com ([98.139.91.84]:42779) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1RxvHS-0001AE-6s for guile-user@gnu.org; Thu, 16 Feb 2012 01:57:27 -0500 Original-Received: from [98.139.91.62] by nm14.bullet.mail.sp2.yahoo.com with NNFMP; 16 Feb 2012 06:57:24 -0000 Original-Received: from [98.139.91.19] by tm2.bullet.mail.sp2.yahoo.com with NNFMP; 16 Feb 2012 06:57:24 -0000 Original-Received: from [127.0.0.1] by omp1019.mail.sp2.yahoo.com with NNFMP; 16 Feb 2012 06:57:24 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 447853.16734.bm@omp1019.mail.sp2.yahoo.com Original-Received: (qmail 90592 invoked by uid 60001); 16 Feb 2012 06:57:23 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1329375443; bh=zIb1prThQlBZDjCv0FaYnswqET/zS2bXSBbdzztkb8Q=; h=X-YMail-OSG:Received:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=Kd9DMjwtI1akdsyUNmLYxh6Re1p8lD0Wi/Vb1To5y2eBKRtWngCUbPNSS/91q6W33M7P2/0EfRSUp8WB/60pxOqI4cc3Ue3R3tYrDAyDhIVAKLKMneAlIWPnFbvLUIfiZ/BmitssTTbGxk/Nv6ZlwrnrYabhSU+4pMPUe87NSyI= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=QnBAneHhueKnKYXaszkMd3vzYDHkda5TJ295Ea8Tk2vBQmldYp0pKVL3tS2CjzA5jCLaCBOzizsJkP23JlPi/8BTKEfMGeG/WkphDqpjSphwGSDB8t9gRSYJOjSit6apWhDOHJuWTVCHFJai/6obFhn2jJnHTLjsnFuIvSxAWcM=; X-YMail-OSG: lfajjywVM1kkTAlLqE_.jG4O7O4KUyFc0wLSskneZTsss1N qorJreMOBGzT5.skcaGyIeOAOedaDicoMcC152EGk9.NGoGNAk8t5n5sgVXO 2jM3jFwJSZXuCZ9_9QRA6Ge1Y.hiAxF5vWalvOE4SRqW4m_ug_2KA7SPZHOm vEZKvg84fFuTN0ITcW_MLLoK93dG6apY3vQKPMN0vSmlbNotS4GXhzPzeqGB PgpWpkMvLcdMpTYD1EuGxjkDnlTqcNHn5WJQeGw1GYGNE6jeHjn4X7exhVfJ 7ggACIJ93qhlOJe7eCuz3MHcamScgI.3QkmHR69WveDQuDXes9Srq5wrKKZ3 8HZwJCWqxu_TLNr2tSnJqr11UUX62d00gTdbUzpfw.FGM7wetXBmf6X0SmmP 17_Cm6uRb0U0VaXMTvclEd.iUsZaaDdmFshdMhX9IKfkd82mQkWChTwIVNl4 QtaU41KlPD4_cNlMPNvx5xwEuLe6oU7DEiytRRHkcxgSLTSocN.Z2eWb8Pex 4htWkiqxTnXeJdwbtoZWkH3KN2OAMkiIATYHjMnU9czRj3llX1SRoag-- Original-Received: from [71.130.221.176] by web37901.mail.mud.yahoo.com via HTTP; Wed, 15 Feb 2012 22:57:23 PST X-Mailer: YahooMailWebService/0.8.116.338427 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 98.139.91.84 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:9274 Archived-At: --268625343-1586957076-1329375443=:81756 Content-Type: text/plain; charset=us-ascii Hi- Lacking time to complete a more awesome hack by the 16th, attached please find a decade-old hack that required only slight modification to make it run anew. Yeah, Guile Ncurses Tetris. Or, if you prefer, I have a bug-fix release of my version of the Zile editor modified to use Guile as its extension language https://github.com/downloads/spk121/zile/zile-on-guile-0.1.tar.gz -Mike --268625343-1586957076-1329375443=:81756 Content-Type: text/x-scheme; name="tetris.scm" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tetris.scm" IyEvdXNyL2xvY2FsL2Jpbi9ndWlsZSBcCi1lIHRldHJpcyAtcwohIwoKOzsg QWRhcHRlZCBmcm9tIGd1aWxlLW5jdXJzZXMgMC4xLjAgYnkgRG1pdHJ5IE1v cm96aG5pa292Cjs7IENvcHlyaWdodCAoYykgMjAwMSBEbWl0cnkgTW9yb3po bmlrb3YKOzsgR1BMIDIKCih1c2UtbW9kdWxlcyAobmN1cnNlcyBjdXJzZXMp KQoodXNlLW1vZHVsZXMgKHNyZmkgc3JmaS04KSkKCihkZWZpbmUgbWFpbndp biAjZikKCihkZWZpbmUgeG9yaWdpbiA1KQooZGVmaW5lIHlvcmlnaW4gNSkK CihkZWZpbmUgZmdfY2hhciAjZikKKGRlZmluZSBjYXBfY2hhciAjZikKKGRl ZmluZSBiMV9jaGFyICNmKQooZGVmaW5lIGIyX2NoYXIgI2YpCihkZWZpbmUg YjNfY2hhciAjZikKKGRlZmluZSBiNF9jaGFyICNmKQooZGVmaW5lIGZpZ2F0 dHIgI2YpCihkZWZpbmUgY2FwYXR0ciAjZikKKGRlZmluZSBib3hhdHRyICNm KQoKKGRlZmluZSBjYXAtaGVpZ2h0IDIyKQooZGVmaW5lIGNhcC13aWR0aCAx MCkKCihkZWZpbmUgY2FwLWNvcnJlY3QgI2YpCihkZWZpbmUgZmlnLWNvcnJl Y3QgI2YpCgooZGVmaW5lIHNwZWVkICNmKQooZGVmaW5lIHRsaW5lcyAjZikK KGRlZmluZSBmaWdzICNmKQooZGVmaW5lIHNjb3JlICNmKQoKKGRlZmluZSBp bnBvcnQgI2YpCgooZGVmaW5lICh0ZXRyaXMtaW5pdC1zY3JlZW4pCiAgKHN0 YXJ0LWNvbG9yISkKICAobm9lY2hvISkKICAoY2JyZWFrISkKICAoa2V5cGFk ISBtYWlud2luICN0KQogIChpbml0LXBhaXIhIDEgQ09MT1JfQkxVRSBDT0xP Ul9CTEFDSykKICAoaW5pdC1wYWlyISAyIENPTE9SX0JMVUUgQ09MT1JfQkxB Q0spCiAgKGluaXQtcGFpciEgMyBDT0xPUl9XSElURSBDT0xPUl9CTEFDSykK ICAoY3Vycy1zZXQgMCkKICAobm9kZWxheSEgbWFpbndpbiAjdCkKICAoc2V0 ISBmZ19jaGFyIChhY3MtYmxvY2spKQogIChzZXQhIGNhcF9jaGFyIChhY3Mt YmxvY2spKQogIChzZXQhIGIxX2NoYXIgKG5vcm1hbCAjXC4pKQogIChzZXQh IGIyX2NoYXIgKG5vcm1hbCAjXC4pKQogIChzZXQhIGIzX2NoYXIgKG5vcm1h bCAjXHNwYWNlKSkKICAoc2V0ISBiNF9jaGFyIChub3JtYWwgI1xzcGFjZSkp CiAgKHNldCEgZmlnYXR0ciAobG9naW9yIChjb2xvci1wYWlyIDEpIEFfQk9M RCkpCiAgKHNldCEgY2FwYXR0ciAoY29sb3ItcGFpciAyKSkKICAoc2V0ISBi b3hhdHRyIChjb2xvci1wYWlyIDMpKQogIChzZXQhIHhvcmlnaW4gKC0gKHF1 b3RpZW50IChjb2xzKSAyKSAocXVvdGllbnQgKCogY2FwLXdpZHRoIDIpIDIp KSkKICAoc2V0ISB5b3JpZ2luICgtIChxdW90aWVudCAobGluZXMpIDIpIChx dW90aWVudCBjYXAtaGVpZ2h0IDIpKSkpCgooZGVmaW5lICh0ZXRyaXMtZG9u ZS1zY3JlZW4pCiAgKHN0YW5kZW5kISBtYWlud2luKQogIChjbGVhciBtYWlu d2luKQogIChyZWZyZXNoIG1haW53aW4pCiAgKGN1cnMtc2V0IDEpCiAgKGVu ZHdpbikpCgooZGVmaW5lICh0ZXRyaXMgYXJncykKICAobGV0ICgodyAoaW5p dHNjcikpKQogICAgKHNldCEgbWFpbndpbiB3KQogICAgKHRldHJpcy1pbml0 LXNjcmVlbikKICAgICh0ZXRyaXMtbG9vcCkKICAgICh0ZXRyaXMtZG9uZS1z Y3JlZW4pKSkKCihkZWZpbmUgZmlndXJlcyBgKCgiIyMiCgkJICAgIiMjIikK CQkgIAoJCSAgKCIjLiIKCQkgICAiIyMiCgkJICAgIi4jIikKCQkgIAoJCSAg KCIuIyIKCQkgICAiIyMiCgkJICAgIiMuIikKCQkgIAoJCSAgKCIjIgoJCSAg ICIjIgoJCSAgICIjIgoJCSAgICIjIikKCQkgIAoJCSAgKCIjLiIKCQkgICAi IyMiCgkJICAgIiMuIikKCQkgIAoJCSAgKCIjIyIKCQkgICAiIy4iCgkJICAg IiMuIikKCQkgIAoJCSAgKCIjIyIKCQkgICAiLiMiCgkJICAgIi4jIikpKQoK KGRlZmluZSBmaWctcm90YXRpb24gYCgoMCAwIDAgMCkKCQkgICAgICAgKDAg MCAwIDApCgkJICAgICAgICgwIDAgMCAwKQoJCSAgICAgICAoLTIgMiAtMiAy KQoJCSAgICAgICAoLTEgMCAwIDEpCgkJICAgICAgICgwIDAgMCAwKQoJCSAg ICAgICAoMCAwIDAgMCkpKQoKKGRlZmluZSAodGV0cmlzLWxvb3ApCiAgKHRl dHJpcy1kcmF3LWJveCkKICAodGV0cmlzLWRyYXctaGVscCkKICAobGV0cmVj ICgoa2V5ICNmKQogICAgICAgICAgIChmaWcgI2YpCgkgICAoY2FwICNmKQoJ ICAgKHRpY3MgI2YpCgkgICAoc3BlZWR0aWNzICNmKQoJICAgKHNwZWVkdXAg I2YpCgkgICAobG9vcCAobGFtYmRhICgpCgkJICAgKHNldCEga2V5IChnZXRj aCBtYWlud2luKSkKCQkgICAoY29uZAoJCSAgICAoKGVxPyBrZXkgI1xzcGFj ZSkKCQkgICAgICh0ZXRyaXMtZHJvcC1maWcgZmlnIGNhcCkKCQkgICAgIChz ZXQhIHRpY3MgKHRtczpjbG9jayAodGltZXMpKSkpCgkJICAgICgoZXE/IGtl eSBLRVlfVVApCgkJICAgICAodGV0cmlzLXRyeS1yb3RhdGUgZmlnIGNhcCkK CQkgICAgIChzZXQhIHRpY3MgKHRtczpjbG9jayAodGltZXMpKSkpCgkJICAg ICgoZXE/IGtleSBLRVlfTEVGVCkKCQkgICAgICh0ZXRyaXMtdHJ5LWxlZnQg ZmlnIGNhcCkKCQkgICAgIChzZXQhIHRpY3MgKHRtczpjbG9jayAodGltZXMp KSkpCgkJICAgICgoZXE/IGtleSBLRVlfUklHSFQpCgkJICAgICAodGV0cmlz LXRyeS1yaWdodCBmaWcgY2FwKQoJCSAgICAgKHNldCEgdGljcyAodG1zOmNs b2NrICh0aW1lcykpKSkKCQkgICAgKChvciAoZXE/IGtleSBLRVlfUkVGUkVT SCkKCQkJIChlcT8ga2V5ICgtIChjaGFyLT5pbnRlZ2VyICNcTCkKCQkJCSAg ICAgKGNoYXItPmludGVnZXIgI1xAKSkpKQoJCSAgICAgKGNsZWFyIG1haW53 aW4pCgkJICAgICAodGV0cmlzLWRyYXctYm94KQoJCSAgICAgKHRldHJpcy1k cmF3LWhlbHApCgkJICAgICAodGV0cmlzLWRyYXctY2FwIGNhcCkKCQkgICAg ICh0ZXRyaXMtZHJhdy1maWcgZmlnICN0KSkpCgkJICAgKHJlZnJlc2ggbWFp bndpbikKCQkgICAoaWYgKD49ICgtICh0bXM6Y2xvY2sgKHRpbWVzKSkgdGlj cykgKC0gNTAwICgqIHNwZWVkIDUpKSkKCQkgICAgICAgKGJlZ2luCgkJCSAo c2V0ISB0aWNzICh0bXM6Y2xvY2sgKHRpbWVzKSkpCgkJCSAoaWYgKD49ICgt ICh0bXM6Y2xvY2sgKHRpbWVzKSkgc3BlZWR0aWNzKSBzcGVlZHVwKQoJCQkg ICAgIChiZWdpbgoJCQkgICAgICAgKHNldCEgc3BlZWR0aWNzICh0bXM6Y2xv Y2sgKHRpbWVzKSkpCgkJCSAgICAgICAoc2V0ISBzcGVlZCAoMSsgc3BlZWQp KQoJCQkgICAgICAgKGlmICg+IHNwZWVkIDEwKQoJCQkJICAgKHNldCEgc3Bl ZWQgMTApKSkpCgkJCSAodGV0cmlzLW1vdmUtZmlnIGZpZyBjYXApCgkJCSAo aWYgKGVxPyBmaWctY29ycmVjdCAjZikKCQkJICAgICAoYmVnaW4KCQkJICAg ICAgIChzZXQhIGNhcCAodGV0cmlzLWNoZWNrLWNhcCBjYXApKQoJCQkgICAg ICAgKHRldHJpcy1kcmF3LWNhcCBjYXApCgkJCSAgICAgICAoc2V0ISBmaWcg KHRldHJpcy1nZW5lcmF0ZS1maWcpKQoJCQkgICAgICAgKHRldHJpcy1wbGFj ZS1maWcgZmlnIGNhcCkpKQoJCQkgKHRldHJpcy1kcmF3LXNjb3JlIHNwZWVk KQoJCQkgKHJlZnJlc2ggbWFpbndpbikpKQoJCSAgIChpZiAobm90IChvciAo ZXE/IGtleSAjXHEpCgkJCQkoZXE/IGNhcC1jb3JyZWN0ICNmKSkpCgkJICAg ICAgIChsb29wKSkpKSkKICAgIChzZXQhIGZpZyAodGV0cmlzLWdlbmVyYXRl LWZpZykpCiAgICAoc2V0ISBjYXAgKHRldHJpcy1nZW5lcmF0ZS1jYXApKQog ICAgKHRldHJpcy1kcmF3LWNhcCBjYXApCiAgICAodGV0cmlzLXBsYWNlLWZp ZyBmaWcgY2FwKQogICAgKHNldCEgdGljcyAodG1zOmNsb2NrICh0aW1lcykp KQogICAgKHNldCEgc3BlZWQgMCkKICAgIChzZXQhIHNwZWVkdGljcyAodG1z OmNsb2NrICh0aW1lcykpKQogICAgKHNldCEgc3BlZWR1cCAxMDAwMCkKICAg IChzZXQhIHRsaW5lcyAwKQogICAgKHNldCEgZmlncyAwKQogICAgKHNldCEg c2NvcmUgMCkKICAgICh0ZXRyaXMtZHJhdy1zY29yZSBzcGVlZCkKICAgIChy ZWZyZXNoIG1haW53aW4pCiAgICAobG9vcCkpKQoKKGRlZmluZSAodGV0cmlz LXNjb3JlLWZpZykKICAoc2V0ISBmaWdzICgxKyBmaWdzKSkKICAoc2V0ISBz Y29yZSAoKyBzY29yZSBzcGVlZCkpKQoKKGRlZmluZSAodGV0cmlzLXNjb3Jl LWxpbmUpCiAgKHNldCEgdGxpbmVzICgxKyB0bGluZXMpKQogIChzZXQhIHNj b3JlICgrIHNjb3JlICgqIDUgc3BlZWQpKSkpCgooZGVmaW5lICh0ZXRyaXMt ZHJhdy1zY29yZSBzcGVlZCkKICAoYXR0ci1zZXQhIG1haW53aW4gYm94YXR0 cikKICAobW92ZSBtYWlud2luIHlvcmlnaW4gKC0geG9yaWdpbiAxOCkpCiAg KGFkZHN0ciBtYWlud2luICJTUEVFRCAgIDogIikKICAoYWRkc3RyIG1haW53 aW4gKG51bWJlci0+c3RyaW5nIHNwZWVkKSkKICAobW92ZSBtYWlud2luICgr IHlvcmlnaW4gMSkgKC0geG9yaWdpbiAxOCkpCiAgKGFkZHN0ciBtYWlud2lu ICJGSUdVUkVTIDogIikKICAoYWRkc3RyIG1haW53aW4gKG51bWJlci0+c3Ry aW5nIGZpZ3MpKQogIChtb3ZlIG1haW53aW4gKCsgeW9yaWdpbiAyKSAoLSB4 b3JpZ2luIDE4KSkKICAoYWRkc3RyIG1haW53aW4gIkxJTkVTICAgOiAiKQog IChhZGRzdHIgbWFpbndpbiAobnVtYmVyLT5zdHJpbmcgdGxpbmVzKSkKICAo bW92ZSBtYWlud2luICgrIHlvcmlnaW4gMykgKC0geG9yaWdpbiAxOCkpCiAg KGFkZHN0ciBtYWlud2luICJTQ09SRSAgIDogIikKICAoYWRkc3RyIG1haW53 aW4gKG51bWJlci0+c3RyaW5nIHNjb3JlKSkpCgooZGVmaW5lICh0ZXRyaXMt ZHJhdy1ib3gpCiAgKGF0dHItc2V0ISBtYWlud2luIGJveGF0dHIpCiAgKG1v dmUgbWFpbndpbiB5b3JpZ2luICgxLSB4b3JpZ2luKSkKICAodmxpbmUgbWFp bndpbiAoYWNzLXZsaW5lKSBjYXAtaGVpZ2h0KQogIChtb3ZlIG1haW53aW4g KCsgeW9yaWdpbiBjYXAtaGVpZ2h0KSAoMS0geG9yaWdpbikpCiAgKGhsaW5l IG1haW53aW4gKGFjcy1obGluZSkgKCsgKCogY2FwLXdpZHRoIDIpIDIpKQog IChhZGRjaCBtYWlud2luIChhY3MtbGxjb3JuZXIpKQogIChtb3ZlIG1haW53 aW4geW9yaWdpbiAoKyB4b3JpZ2luICgqIGNhcC13aWR0aCAyKSkpCiAgKHZs aW5lIG1haW53aW4gKGFjcy12bGluZSkgY2FwLWhlaWdodCkKICAobW92ZSBt YWlud2luICgrIHlvcmlnaW4gY2FwLWhlaWdodCkgKCsgeG9yaWdpbiAoKiBj YXAtd2lkdGggMikpKQogIChhZGRjaCBtYWlud2luIChhY3MtbHJjb3JuZXIp KSkKCihkZWZpbmUgKHRldHJpcy1kcmF3LWhlbHApICcoKSkKCihkZWZpbmUg KHRldHJpcy1kcmF3LWZpZyBmaWcgb24pCiAgKGxldHJlYyAoKGZpZ3ZpZXcg KHRldHJpcy1maWd2aWV3IGZpZykpCgkgICAoeCAwKQoJICAgKHkgMCkKCSAg IChmeCAoY2FyIGZpZykpCgkgICAoZnkgKGNhZHIgZmlnKSkKCSAgIChkcmF3 IChsYW1iZGEgKGYpCgkJICAgKHNldCEgeCAwKQoJCSAgIChkcmF3LXggKGNh ciBmKSkKCQkgICAoc2V0ISB5ICgxKyB5KSkKCQkgICAoaWYgKG5vdCAobnVs bD8gKGNkciBmKSkpCgkJICAgICAgIChkcmF3IChjZHIgZikpKSkpCgkgICAo ZHJhdy14IChsYW1iZGEgKGYpCgkJICAgICAobW92ZSBtYWlud2luICgrIHlv cmlnaW4gZnkgeSkKCQkJICAgKCsgeG9yaWdpbiAoKiAoKyBmeCB4KSAyKSkp CgkJICAgICAoaWYgKGVxPyAoY2FyIGYpICNcIykKCQkJIChpZiBvbgoJCQkg ICAgIChiZWdpbgoJCQkgICAgICAgKGF0dHItc2V0ISBtYWlud2luIGZpZ2F0 dHIpCgkJCSAgICAgICAoYWRkY2ggbWFpbndpbiBmZ19jaGFyKQoJCQkgICAg ICAgKGFkZGNoIG1haW53aW4gZmdfY2hhcikpCgkJCSAgICAgKGJlZ2luCgkJ CSAgICAgICAoYXR0ci1zZXQhIG1haW53aW4gY2FwYXR0cikKCQkJICAgICAg IChsZXQgKChveSAob2RkPyAoKyBmeSB5KSkpCgkJCQkgICAgIChveCAob2Rk PyAoKyBmeCB4KSkpKQoJCQkJIChjb25kCgkJCQkgICgob3IgKGFuZCBveSBv eCkKCQkJCSAgICAgICAoYW5kIChub3Qgb3kpIAoJCQkJCSAgICAobm90IG94 KSkpCgkJCQkgICAoYWRkY2ggbWFpbndpbiBiMV9jaGFyKQoJCQkJICAgKGFk ZGNoIG1haW53aW4gYjJfY2hhcikpCgkJCQkgICgjdAoJCQkJICAgKGFkZGNo IG1haW53aW4gYjNfY2hhcikKCQkJCSAgIChhZGRjaCBtYWlud2luIGI0X2No YXIpKSkpKSkpCgkJICAgICAoc2V0ISB4ICgxKyB4KSkKCQkgICAgIChpZiAo bm90IChudWxsPyAoY2RyIGYpKSkKCQkJIChkcmF3LXggKGNkciBmKSkpKSkp CiAgICAoZHJhdyBmaWd2aWV3KSkpCgooZGVmaW5lICh0ZXRyaXMtZHJhdy1j YXAgY2FwKQogIChhdHRyLXNldCEgbWFpbndpbiBjYXBhdHRyKQogIChsZXRy ZWMgKCh5IDApCgkgICAoeCAwKQoJICAgKGRyYXcgKGxhbWJkYSAoYykKCQkg ICAobW92ZSBtYWlud2luICgrIHlvcmlnaW4geSkgeG9yaWdpbikKCQkgICAo c2V0ISB4IDApCgkJICAgKGRyYXcteCAoY2FyIGMpKQoJCSAgIChzZXQhIHkg KDErIHkpKQoJCSAgIChpZiAobm90IChudWxsPyAoY2RyIGMpKSkKCQkgICAg ICAgKGRyYXcgKGNkciBjKSkpKSkKCSAgIChkcmF3LXggKGxhbWJkYSAoYykK CQkgICAgIChpZiAoZXE/IChjYXIgYykgI1wlKQoJCQkgKGJlZ2luCgkJCSAg IChhZGRjaCBtYWlud2luIGNhcF9jaGFyKQoJCQkgICAoYWRkY2ggbWFpbndp biBjYXBfY2hhcikpCgkJCSAoYmVnaW4KCQkJICAgKGNvbmQKCQkJICAgICgo b3IgKGFuZCAob2RkPyB5KSAob2RkPyB4KSkKCQkJCSAoYW5kIChldmVuPyB5 KSAoZXZlbj8geCkpKQoJCQkgICAgIChhZGRjaCBtYWlud2luIGIxX2NoYXIp CgkJCSAgICAgKGFkZGNoIG1haW53aW4gYjJfY2hhcikpCgkJCSAgICAoI3QK CQkJICAgICAoYWRkY2ggbWFpbndpbiBiM19jaGFyKQoJCQkgICAgIChhZGRj aCBtYWlud2luIGI0X2NoYXIpKSkpKQoJCSAgICAgKHNldCEgeCAoMSsgeCkp CgkJICAgICAoaWYgKG5vdCAobnVsbD8gKGNkciBjKSkpCgkJCSAoZHJhdy14 IChjZHIgYykpKSkpKQogICAgKGRyYXcgY2FwKSkpCgooZGVmaW5lICh0ZXRy aXMtY2hlY2stY2FwIGNhcCkKICAobGV0cmVjICgoZHJvcHBlZCAwKQoJICAg KHBhdHRlcm4gKG1ha2UtbGlzdCBjYXAtd2lkdGggI1wlKSkKCSAgIChjaGVj ayAobGFtYmRhIChjKQoJCSAgICAoaWYgKG51bGw/IGMpCgkJCWAoKQoJCQko aWYgKGVxdWFsPyAoY2FyIGMpIHBhdHRlcm4pCgkJCSAgICAoYmVnaW4KCQkJ ICAgICAgKHNldCEgZHJvcHBlZCAoMSsgZHJvcHBlZCkpCgkJCSAgICAgICh0 ZXRyaXMtc2NvcmUtbGluZSkKCQkJICAgICAgKGFwcGVuZCAoY2hlY2sgKGNk ciBjKSkpKQoJCQkgICAgKGFwcGVuZCAobGlzdCAoY2FyIGMpKSAoY2hlY2sg KGNkciBjKSkpKSkpKSkKICAgIChsZXRyZWMgKChuZXdjYXAgKGNoZWNrIGNh cCkpCgkgICAgIChoZWFkIChsYW1iZGEgKCkKCQkgICAgIChpZiAoPD0gZHJv cHBlZCAwKQoJCQkgYCgpCgkJCSAoYmVnaW4KCQkJICAgKHNldCEgZHJvcHBl ZCAoMS0gZHJvcHBlZCkpCgkJCSAgIChhcHBlbmQgKGxpc3QgKG1ha2UtbGlz dCBjYXAtd2lkdGggI1wuKSkgKGhlYWQpKSkpKSkpCiAgICAgIChhcHBlbmQg KGhlYWQpIG5ld2NhcCkpKSkKCihkZWZpbmUgKHRldHJpcy1kcm9wLWZpZyBm aWcgY2FwKQogIChsZXRyZWMgKChkcm9wIChsYW1iZGEgKGQpCgkJICAgKGxl dCAoKGNhcC10YWlsICh0ZXRyaXMtY2FwLXRhaWwgZmlnIGNhcCAwIGQpKSkK CQkgICAgIChpZiAob3IgKGVxPyBjYXAtdGFpbCAjZikKCQkJICAgICAobm90 ICh0ZXRyaXMtcGxhY2VhYmxlPyBmaWcgY2FwLXRhaWwpKSkKCQkJIChiZWdp bgoJCQkgICAoaWYgKD4gZCAxKQoJCQkgICAgICAgKGJlZ2luIAoJCQkJICh0 ZXRyaXMtZHJhdy1maWcgZmlnICNmKQoJCQkJIChzZXQtY2FyISAoY2RyIGZp ZykgKCsgKGNhZHIgZmlnKSAoMS0gZCkpKQoJCQkJICh0ZXRyaXMtZHJhdy1m aWcgZmlnICN0KSkpKQoJCQkgKGRyb3AgKDErIGQpKSkpKSkpCiAgICAoZHJv cCAxKSkpCgooZGVmaW5lICh0ZXRyaXMtZ2VuZXJhdGUtY2FwKQogIChsZXRy ZWMgKChoICgtIGNhcC1oZWlnaHQgMSkpCgkgICAoY2FwIChsaXN0IChtYWtl LWxpc3QgY2FwLXdpZHRoICNcLikpKQoJICAgKG1raCAobGFtYmRhICgpCgkJ ICAoYXBwZW5kISBjYXAgKGxpc3QgKG1ha2UtbGlzdCBjYXAtd2lkdGggI1wu KSkpCgkJICAoc2V0ISBoICgtIGggMSkpCgkJICAoaWYgKG5vdCAoPSBoIDAp KQoJCSAgICAgIChta2gpKSkpKQogICAgKG1raCkKICAgIChzZXQhIGNhcC1j b3JyZWN0ICN0KQogICAgY2FwKSkKCjs7OyBGaWd1cmUgZGVmaW5lZCBhcyAo eCB5IHcgaCByb3QgKHJvdDAgLi4uIHJvdDMpCjs7OyAJICAgCQkgICAJICAg ICgoeDF5MSB4MnkxIC4uLiB4bnkxKQo7OzsJCSAgIAkJICAgCSAgCSAoeDF5 MiB4MnkyIC4uLiB4bnkyKSAuLi4gKSkKKGRlZmluZSAodGV0cmlzLWdlbmVy YXRlLWZpZykKICAoc2V0ISBmaWctY29ycmVjdCAjdCkKICAobGV0KiAoKGZp Z251bSAocmFuZG9tIDcpKQoJIChmaWd2aWV3IChtYXAgc3RyaW5nLT5saXN0 IChjYXIgKGxpc3QtdGFpbCBmaWd1cmVzIGZpZ251bSkpKSkKCSAodyAobGVu Z3RoIChjYXIgZmlndmlldykpKQoJIChoIChsZW5ndGggZmlndmlldykpKQog ICAgKGxpc3QgKC0gKHF1b3RpZW50IGNhcC13aWR0aCAyKSAocXVvdGllbnQg dyAyKSkgMCB3IGggMAoJICAoY2FyIChsaXN0LXRhaWwgZmlnLXJvdGF0aW9u IGZpZ251bSkpIGZpZ3ZpZXcpKSkKCihkZWZpbmUgKHRldHJpcy1maWd2aWV3 IGZpZykKICAoY2FyIChsaXN0LXRhaWwgZmlnIDYpKSkKCihkZWZpbmUgKHRl dHJpcy1wbGFjZWFibGU/IGZpZyBjYXApCiAgKGxldHJlYyAoKGZpZ3ZpZXcg KHRldHJpcy1maWd2aWV3IGZpZykpCgkgICAocGxhY2VhYmxlPyAobGFtYmRh IChmIGMpCgkJCSAoaWYgKG9yIChub3QgKHBsYWNlYWJsZS14PyAoY2FyIGYp IChjYXIgYykpKQoJCQkJIChhbmQgKG51bGw/IChjZHIgYykpCgkJCQkgICAg ICAobm90IChudWxsPyAoY2RyIGYpKSkpKQoJCQkgICAgICNmCgkJCSAgICAg KGlmIChudWxsPyAoY2RyIGYpKQoJCQkJICN0CgkJCQkgKHBsYWNlYWJsZT8g KGNkciBmKSAoY2RyIGMpKSkpKSkKCSAgIChwbGFjZWFibGUteD8gKGxhbWJk YSAoZiBjKQoJCQkgICAoaWYgKG9yIChhbmQgKGVxPyAoY2FyIGYpICNcIykK CQkJCQkoZXE/IChjYXIgYykgI1wlKSkKCQkJCSAgIChhbmQgKG51bGw/IChj ZHIgYykpCgkJCQkJKG5vdCAobnVsbD8gKGNkciBmKSkpKSkKCQkJICAgICAg ICNmCgkJCSAgICAgICAoaWYgKG51bGw/IChjZHIgZikpCgkJCQkgICAjdAoJ CQkJICAgKHBsYWNlYWJsZS14PyAoY2RyIGYpIChjZHIgYykpKSkpKSkKICAg IChwbGFjZWFibGU/IGZpZ3ZpZXcgY2FwKSkpCgooZGVmaW5lICh0ZXRyaXMt Y2FwLXRhaWwgZmlnIGNhcCB4c2hpZnQgeXNoaWZ0KQogIChpZiAob3IgKDwg KCsgKGNhZHIgZmlnKSB5c2hpZnQpIDApCgkgICg8ICgrIChjYXIgZmlnKSB4 c2hpZnQpIDApCgkgICg+PSAoKyAoY2FkciBmaWcpIHlzaGlmdCAoLSAoY2Fk ZGRyIGZpZykgMSkpIGNhcC1oZWlnaHQpCgkgICg+PSAoKyAoY2FyIGZpZykg eHNoaWZ0ICgtIChjYWRkciBmaWcpIDEpKSBjYXAtd2lkdGgpKQogICAgICAj ZgogICAgICAobGV0cmVjICgoaGVpZ2h0IDApCgkgICAgICAgKHRhaWwgKGxh bWJkYSAodCkKCQkgICAgICAgKGlmIChvciAoPSBoZWlnaHQgKGNhZGRkciBm aWcpKQoJCQkgICAgICAgKG51bGw/IChjZHIgdCkpKQoJCQkgICAobGlzdCAo bGlzdC10YWlsIChjYXIgdCkgKCsgKGNhciBmaWcpIHhzaGlmdCkpKQoJCQkg ICAoYmVnaW4KCQkJICAgICAoc2V0ISBoZWlnaHQgKDErIGhlaWdodCkpCgkJ CSAgICAgKGFwcGVuZCAobGlzdCAobGlzdC10YWlsIChjYXIgdCkKCQkJCQkJ ICAgICAgKCsgKGNhciBmaWcpIHhzaGlmdCkpKQoJCQkJICAgICAodGFpbCAo Y2RyIHQpKSkpKSkpKQoJKHRhaWwgKGxpc3QtdGFpbCBjYXAgKCsgKGNhZHIg ZmlnKSB5c2hpZnQpKSkpKSkKCihkZWZpbmUgKHRldHJpcy1wbGFjZS1maWcg ZmlnIGNhcCkKICAobGV0ICgoY2FwLXRhaWwgKHRldHJpcy1jYXAtdGFpbCBm aWcgY2FwIDAgMCkpKQogICAgKGlmIChhbmQgKG5vdCAoZXE/IGNhcC10YWls ICNmKSkKCSAgICAgKHRldHJpcy1wbGFjZWFibGU/IGZpZyBjYXAtdGFpbCkp CgkoYmVnaW4KCSAgKHNldCEgY2FwLWNvcnJlY3QgI3QpCgkgIChzZXQhIGZp Zy1jb3JyZWN0ICN0KQoJICAodGV0cmlzLWRyYXctZmlnIGZpZyAjdCkpCgko YmVnaW4KCSAgKHNldCEgY2FwLWNvcnJlY3QgI2YpCgkgIChzZXQhIGZpZy1j b3JyZWN0ICNmKSkpKSkKCihkZWZpbmUgKHRldHJpcy1maXggZmlnIGNhcCkK ICAobGV0cmVjICgoZmlndmlldyAodGV0cmlzLWZpZ3ZpZXcgZmlnKSkKCSAg IChmaXggKGxhbWJkYSAoZiBjKQoJCSAgKGZpeC14IChjYXIgZikgKGNhciBj KSkKCQkgIChpZiAobm90IChudWxsPyAoY2RyIGYpKSkKCQkgICAgICAoZml4 IChjZHIgZikgKGNkciBjKSkpKSkKCSAgIChmaXgteCAobGFtYmRhIChmIGMp CgkJICAgIChpZiAoZXE/IChjYXIgZikgI1wjKQoJCQkoc2V0LWNhciEgYyAj XCUpKQoJCSAgICAoaWYgKG5vdCAobnVsbD8gKGNkciBmKSkpCgkJCShmaXgt eCAoY2RyIGYpIChjZHIgYykpKSkpKQogICAgKGZpeCBmaWd2aWV3IGNhcCkp KQoKKGRlZmluZSAodGV0cmlzLW1vdmUtZmlnIGZpZyBjYXApCiAgKGxldCAo KGNhcC10YWlsICh0ZXRyaXMtY2FwLXRhaWwgZmlnIGNhcCAwIDEpKSkKICAg IChpZiAoYW5kIChub3QgKGVxPyBjYXAtdGFpbCAjZikpCgkgICAgICh0ZXRy aXMtcGxhY2VhYmxlPyBmaWcgY2FwLXRhaWwpKQoJKGJlZ2luCgkgICh0ZXRy aXMtZHJhdy1maWcgZmlnICNmKQoJICAoc2V0LWNhciEgKGNkciBmaWcpICgx KyAoY2FkciBmaWcpKSkKCSAgKHRldHJpcy1kcmF3LWZpZyBmaWcgI3QpKQoJ KGxldCAoKGNhcC10YWlsICh0ZXRyaXMtY2FwLXRhaWwgZmlnIGNhcCAwIDAp KSkKCSAgKHRldHJpcy1kcmF3LWZpZyBmaWcgI2YpCgkgICh0ZXRyaXMtZml4 IGZpZyBjYXAtdGFpbCkKCSAgKHRldHJpcy1zY29yZS1maWcpCgkgIChzZXQh IGZpZy1jb3JyZWN0ICNmKSkpKSkKCihkZWZpbmUgKHRldHJpcy10cnktbGVm dCBmaWcgY2FwKQogIChsZXQgKChjYXAtdGFpbCAodGV0cmlzLWNhcC10YWls IGZpZyBjYXAgLTEgMCkpKQogICAgKGlmIChhbmQgKG5vdCAoZXE/IGNhcC10 YWlsICNmKSkKCSAgICAgKHRldHJpcy1wbGFjZWFibGU/IGZpZyBjYXAtdGFp bCkpCgkoYmVnaW4KCSAgKHRldHJpcy1kcmF3LWZpZyBmaWcgI2YpCgkgIChz ZXQtY2FyISBmaWcgKDEtIChjYXIgZmlnKSkpCgkgICh0ZXRyaXMtZHJhdy1m aWcgZmlnICN0KSkpKSkKCihkZWZpbmUgKHRldHJpcy10cnktcmlnaHQgZmln IGNhcCkKICAobGV0ICgoY2FwLXRhaWwgKHRldHJpcy1jYXAtdGFpbCBmaWcg Y2FwIDEgMCkpKQogICAgKGlmIChhbmQgKG5vdCAoZXE/IGNhcC10YWlsICNm KSkKCSAgICAgKHRldHJpcy1wbGFjZWFibGU/IGZpZyBjYXAtdGFpbCkpCgko YmVnaW4KCSAgKHRldHJpcy1kcmF3LWZpZyBmaWcgI2YpCgkgIChzZXQtY2Fy ISBmaWcgKDErIChjYXIgZmlnKSkpCgkgICh0ZXRyaXMtZHJhdy1maWcgZmln ICN0KSkpKSkKCihkZWZpbmUgKHRldHJpcy1maWdyb3RhdGlvbiBmaWcpCiAg KGNhciAobGlzdC10YWlsIGZpZyA1KSkpCgooZGVmaW5lICh0ZXRyaXMtcm90 YXRlIGZpZykKICAobGV0cmVjICgoZmlndmlldyAodGV0cmlzLWZpZ3ZpZXcg ZmlnKSkKCSAgIChyb3RhdGlvbiAodGV0cmlzLWZpZ3JvdGF0aW9uIGZpZykp CgkgICAocm90IChsYW1iZGEgKHcgeCBoKQoJCSAgKGlmICg8IHcgMCkKCQkg ICAgICBoCgkJICAgICAgKHJvdCAoMS0gdykgCgkJCSAgIHgKCQkJICAgKGFw cGVuZCBoIChsaXN0IChtYXAgKGxhbWJkYSAoeSkgKGxpc3QtcmVmIHkgdykp CgkJCQkJCXgpKSkpKSkpKQogICAgKGxldCogKCh4ICgrIChjYXIgZmlnKSAo bGlzdC1yZWYgcm90YXRpb24gKGNhciAoY2RkZGRyIGZpZykpKSkpCgkgICAo bmV3ZmlnIChsaXN0IChpZiAoPCB4IDApCgkJCSAgICAgMAoJCQkgICAgIChp ZiAoPj0gKCsgeCAoY2FkZGRyIGZpZykpIGNhcC13aWR0aCkKCQkJCSAoLSB4 ICgtICgrIHggKGNhZGRkciBmaWcpKSBjYXAtd2lkdGgpKQoJCQkJIHgpKQoJ CQkgKGNhZHIgZmlnKQoJCQkgKGNhZGRkciBmaWcpCgkJCSAoY2FkZHIgZmln KQoJCQkgKGlmICg9IChjYXIgKGNkZGRkciBmaWcpKSAzKQoJCQkgICAgIDAK CQkJICAgICAoMSsgKGNhciAoY2RkZGRyIGZpZykpKSkKCQkJIHJvdGF0aW9u CgkJCSAocm90ICgxLSAoY2FkZHIgZmlnKSkgZmlndmlldyBgKCkpKSkpCiAg ICAgIG5ld2ZpZykpKQoKKGRlZmluZSAodGV0cmlzLXRyeS1yb3RhdGUgZmln IGNhcCkKICAobGV0KiAoKHJvdGZpZyAodGV0cmlzLXJvdGF0ZSBmaWcpKQoJ IChjYXAtdGFpbCAodGV0cmlzLWNhcC10YWlsIHJvdGZpZyBjYXAgMCAwKSkp CiAgICAoaWYgKGFuZCAobm90IChlcT8gY2FwLXRhaWwgI2YpKQoJICAgICAo dGV0cmlzLXBsYWNlYWJsZT8gcm90ZmlnIGNhcC10YWlsKSkKCShiZWdpbgoJ ICAodGV0cmlzLWRyYXctZmlnIGZpZyAjZikKCSAgKHNldC1jYXIhIGZpZyAo Y2FyIHJvdGZpZykpCgkgIChzZXQtY2RyISBmaWcgKGNkciByb3RmaWcpKQoJ ICAodGV0cmlzLWRyYXctZmlnIGZpZyAjdCkpKSkpCg== --268625343-1586957076-1329375443=:81756--