Message-ID: <34F87B12.B5C9EA16@www.the-link.net> Date: Sat, 28 Feb 1998 15:01:06 -0600 From: Robert McNulty Reply-To: bobbymcn AT www DOT the-link DOT net Organization: Home MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Star Trek trivia in C. Content-Type: multipart/mixed; boundary="------------C025BCE5467AB2B434EC4CE5" NNTP-Posting-Host: dialin165.mgm.the-link.net Lines: 259 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk This is a multi-part message in MIME format. --------------C025BCE5467AB2B434EC4CE5 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Some time back, I wrote a Trek trivia game. Here is the source code. --------------C025BCE5467AB2B434EC4CE5 Content-Type: application/x-unknown-content-type-C_auto_file; name="Trekquiz.c" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="Trekquiz.c" I2luY2x1ZGUgPHN0ZGlvLmg+DQoNCm1haW4oKQ0Kew0KICAgY2hhciBhOyANCiAgIGZsb2F0 IHgsejsNCiAgIHg9Mi41O3o9MDsNCiAgICAgICAgIHB1dHMoIlN0YXIgVHJlayBUcml2aWFc biIpOw0KICAgICAgICAgcHV0cygiQnkgUm9iZXJ0IE1jTnVsdHkgSnVuaW9yXG4iKTsNCiAg ICAgICAgIHB1dHMoIkJhc2VkIG9uIFN0YXIgVHJlayBFbmN5Y2xvcGVkaWFcbiIpOw0KICAg ICAgICAgcHV0cygiQnkgTWljaGFlbCBPa3VkYVxuIik7DQogICAgICAgICBwdXRzKCJEZW5p c2UgT2t1ZGFcbiIpOw0KICAgICAgICAgcHV0cygiQW5kIERlYmJpZSBNaXJla1xuIik7DQoN Cg0KICANCiAgDQoNCnByaW50ZigiXG4xKSBXaG8gaXMgVHJpcyBTcGVha2VyP1xuIik7DQpw cmludGYoIkEpIGZhbW91cyBiYXNlYmFsbCBwbGF5ZXIgb2YgdGhlIGVhcmx5IDIwdGggQ2Vu dHVyeVxuIik7DQpwcmludGYoIkIpIGNyZWF0b3Igb2YgbW9kZXJuIGRheSBzcGVlY2ggc3lu dGhlc2l6b3JzXG4iKTsNCnByaW50ZigiQykgRHVubm9cbiIpOw0KcHJpbnRmKCJEKSBEb24n dCBjYXJlXG4iKTsNCnB1dHMoIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iKTsNCmEgPSBnZXRjaCgpOw0KaWYgKGE9PSdhJykgeiA9IHogKyB4Ow0KcHJpbnRm KCIgU2NvcmUgc28gZmFyOiAlZlxuIix4KTsNCnByaW50ZigiMikgV2hvIHBsYXllZCBTcG9j ayBvbiB0aGUgb3JpZ2luYWwgU3RhciBUcmVrXG4iKTsNCnByaW50ZigiYSkgTGVvbmFyZCBO aW1veS4uXG4iKTsNCnByaW50ZigiQikgV2lsbGlhbSBTaGF0bmVyLi5cbiIpOw0KcHJpbnRm KCJDKSBNYXJrIExlbmFyZC4uXG4iKTsNCnByaW50ZigiRCkgTWVsIEdpYnNvbi4uXG4iKTsN CmE9Z2V0Y2goKTsNCmlmIChhPT0nYScpDQogICAgeCA9IHggKyAyOw0KcHJpbnRmKCJTY29y ZSBzbyBmYXIgJWZcbiIseCk7DQogICAgcHJpbnRmKCIzKSBIb3cgbWFueSBkZWNrcyBhcmUg b24gdGhlIEVudGVycHJpc2UtRD9cbiIpOw0KICAgIHByaW50ZigiQSkgMjMgZGVja3NcbiIp Ow0KICAgIHByaW50ZigiQikgMjQgZGVja3NcbiIpOw0KICAgIHByaW50ZigiQykgMzYgZGVj a3NcbiIpOw0KICAgIHByaW50ZigiRCkgNDIgZGVja3NcbiIpOw0KICAgIGE9Z2V0Y2goKTsN CiAgICBpZiAoYT09J2QnKQ0KICAgICAgICB4ID0geCArIDI7DQogICAgcHJpbnRmKCJTY29y ZSBTbyBGYXIgJWZcbiIseCk7DQogICAgcHJpbnRmKCJcbiIpOw0KICAgIHByaW50ZigiNCkg V2hvIHdhcyBBbWFyaWU/XG4iKTsNCiAgICBwcmludGYoIkEpIFF1YXJrJ3MgR2lybGZyaWVu ZFxuIik7DQogICAgcHJpbnRmKCJCKSBBIG11c2ljaWFuIHdobyB3b3JrcyBpbiBhIGxvdW5n ZSBvbiBRdWFsb3JcbiIpOw0KICAgIHByaW50ZigiQykgT25lIG9mIFJpa2VyJ3MgbG92ZSBp bnRlcmVzdHNcbiIpOw0KICAgIHByaW50ZigiRCkgTm9uZSBvZiB0aGUgYWJvdmVcbiIpOw0K ICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09J2InKQ0KICAgICAgICB4ID0geCArIDI7DQog ICAgcHJpbnRmKCJTY29yZSBzbyBmYXIgJWZcbiIseCk7DQogICAgcHJpbnRmKCI1KSBXaGlj aCBtb3Rpb24gcGljdHVyZSBmZWF0dXJlZCB0aGUgSUtDIEFtYXJcbiIpOw0KICAgIHByaW50 ZigiQSkgU3RhciBUcmVrOiBUaGUgTW90aW9uIFBpY3R1cmVcbiIpOw0KICAgIHByaW50Zigi QikgU3RhciBUcmVrOiBUaGUgV3JhdGggb2YgS2hhblxuIik7DQogICAgcHJpbnRmKCJDKSBT dGFyIFRyZWs6IFRoZSBTZWFyY2ggRm9yIFNwb2NrXG4iKTsNCiAgICBwcmludGYoIkQpIFN0 YXIgVHJlazogVGhlIFZveWFnZSBIb21lXG4iKTsNCiAgICBwcmludGYoIkUpIFN0YXIgVHJl azogVGhlIEZpbmFsIEZyb250aWVyXG4iKTsNCiAgICBwcmludGYoIkYpIFN0YXIgVHJlazog VGhlIFVuZGlzY292ZXJlZCBDb3VudHJ5XG4iKTsNCiAgICBhPWdldGNoKCk7DQogICAgaWYg KGE9PSdhJykNCiAgICAgICAgeCA9IHggKyAyOw0KICAgIHByaW50ZigiU28gZmFyLCB0aGUg c2NvcmUgaXM6ICAgJWZcbiIseCk7DQogICAgcHJpbnRmKCI2KSBXaG8gd2FzIFNwb2NrJ3Mg bW90aGVyP1xuIik7DQogICAgcHJpbnRmKCJhKSBBbWFuZGEgR3JheXNvblxuIik7DQogICAg cHJpbnRmKCJiKSBKYW5lIEZvbmRhXG4iKTsNCiAgICBwcmludGYoImMpIEFtYXJpZVxuIik7 DQogICAgcHJpbnRmKCJkKSBEZWFubmEgVHJvaVxuIik7DQogICAgYT1nZXRjaCgpOw0KICAg IGlmIChhPT0nYScpDQogICAgICAgIHggPSB4ICsgMjsNCiAgIHByaW50ZigiU2NvcmUgc28g ZmFyOiAlZlxuIix4KTsNCiAgIHByaW50ZigiXG4iKTsNCiAgIHByaW50ZigiNykgV2hvIGF0 dGVuZGVkIHRoZSBBbHRpbmUgQ29uZmVyZW5jZT9cbiIpOw0KICAgcHJpbnRmKCJBKSBQaWNh cmRcbiIpOw0KICAgcHJpbnRmKCJCKSBUcm9pXG4iKTsNCiAgIHByaW50ZigiQykgQ3J1c2hl clxuIik7DQogICBwcmludGYoIkQpIFJpa2VyXG4iKTsNCiAgIGE9Z2V0Y2goKTsNCiAgIGlm IChhPT0nYycpDQogICAgICAgeCA9IHggKyAyOw0KICAgcHJpbnRmKCJTY29yZSBzbyBmYXIg JWZcbiIseCk7DQogICBwcmludGYoIlxuXG5cbiIpOw0KICAgcHJpbnRmKCI4KSBXaG8gd2Fz IENhcHRhaW4gQXByaWw/XG4iKTsNCiAgIHByaW50ZigiQSkgRmlyc3QgY2FwdGFpbiBvZiB0 aGUgRW50ZXJwcmlzZVxuIik7DQogICBwcmludGYoIkIpIGNvbW1hbmRlciBvZiB0aGUgc3Rh cnNoaXAgVm95YWdlclxuIik7DQogICBwcmludGYoIkMpIEJsYW5rcyBteSBtaW5kXG4iKTsN CiAgIHByaW50ZigiRCkgQ29tbWFuZGVyIG9mIERlZXAgU3BhY2UgTmluZVxuIik7DQogICBh PWdldGNoKCk7DQogICBpZiAoYT09J2EnKQ0KICAgIHggPSB4ICsgMjsNCiAgICBwcmludGYo IlRoZSBzY29yZSBpcyAlZlxuIix4KTsNCiAgICBwcmludGYoIlxuXG5cblxuIik7DQogICAg cHJpbnRmKCI5KSBXaG8gaXMgRW5kYXI/XG4iKTsNCiAgICBwcmludGYoImEpIENhcHRhaW4g b2YgdGhlIFRhbGFyaWFuIFEnbWFpcmVcbiIpOw0KICAgIHByaW50ZigiYikgS2xpbmdvbiB3 aG8gZm91Z2h0IEtpcmtcbiIpOw0KICAgIHByaW50ZigiYykgS2xpbmdvbiB3aG8gZm91Z2h0 IFBpY2FyZFxuIik7DQogICAgcHJpbnRmKCJkKSBtZW1iZXIgb2YgdGhlIFEgY29udGludXVt XG4iKTsNCiAgICBhPWdldGNoKCk7DQogICAgaWYgKGE9PSdhJykNCiAgICAgICAgeCA9IHgg KyAyOw0KICAgIHByaW50ZigiIFRoZSBzY29yZSBhdCB0aGlzIG1vbWVudCBpczogICAlZlxu Iix4KTsNCiAgICBwcmludGYoIlxuXG4iKTsNCiAgICBwcmludGYoIjEwKSBXaG8gaXMgRW5l Zz9cbiIpOw0KICAgIHByaW50ZigiYSkgY2FwdGFpbiBvZiB0aGUgc3RhcnNoaXAgRW5kZWF2 b3JcbiIpOw0KICAgIHByaW50ZigiYikgbWVtYmVyIG9mIHRoZSBaZW9uIHVuZGVyZ3JvdW5k XG4iKTsNCiAgICBwcmludGYoImMpIG1lbWJlciBvZiB0aGUgRW50ZXJwcmlzZSdzIGNyZXdc biIpOw0KICAgIHByaW50ZigiZCkgZm91Z2h0IEtpcmsgaW4gU2hvcmUgTGVhdmVcbiIpOw0K ICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09J2InKQ0KICAgICAgICB4ID0geCArIDI7DQog ICAgcHJpbnRmKCJcblxuXG5cblNjb3JlIHNvIGZhciAlZlxuIix4KTsNCiAgICBwcmludGYo IlxuXG4iKTsNCiAgICBwcmludGYoIjExKSBIb3cgbWFueSBkZWNrcyBkb2VzIGEgQ29uc3Rp dHV0aW9uIGNsYXNzIGNydWlzZXIgaGF2ZT9cbiIpOw0KICAgIHByaW50ZigiYSkgMTJcbiIp Ow0KICAgIHByaW50ZigiYikgMTRcbiIpOw0KICAgIHByaW50ZigiYykgMjNcbiIpOw0KICAg IHByaW50ZigiZCkgMjRcbiIpOw0KICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09J2MnKQ0K ICAgICAgICB4ID0geCArIDI7DQogICAgcHJpbnRmKCIgU28gZmFyIHlvdXIgc2NvcmUgaXMg JWZcbiIseCk7DQogICAgcHJpbnRmKCIxMikgV2hpY2ggY2xhc3Mgb2Ygc3RhcnNoaXAgZG9l cyBub3QgaGF2ZSBhbiBFbnRlcnByaXNlP1xuIik7DQogICAgcHJpbnRmKCJBKSBOZWJ1bGEg Y2xhc3NcbiIpOw0KICAgIHByaW50ZigiQikgR2FsYXh5IENsYXNzXG4iKTsNCiAgICBwcmlu dGYoIkMpIEV4Y2Vsc2lvciBDbGFzc1xuIik7DQogICAgcHJpbnRmKCJEKSBBbWJhc3NhZG9y IENsYXNzXG4iKTsNCiAgICBhPWdldGNoKCk7DQogICAgaWYgKGE9PSdhJykNCiAgICAgICAg eCA9IHggKyAyOw0KICAgIHByaW50ZigiMTMpIFRoZSBzY29yZSBhcyBvZiB0aGlzIG1vbWVu dDogICAlZlxuIix4KTsNCiAgICBwcmludGYoIlxuXG5cbldobyBwbGF5ZWQgQ2hhcmxlcyBF dmFucyBpbiBDaGFybGllJ3MgTGF3P1xuIik7DQogICAgcHJpbnRmKCJBKSBSb2JlcnQgV2Fs a2VyIEp1bmlvclxuIik7DQogICAgcHJpbnRmKCJCKSBIYXJyeSBBbmRlcnNvblxuIik7DQog ICAgcHJpbnRmKCJDKSBKb2huIFNjaHVja1xuIik7DQogICAgcHJpbnRmKCJEKSBDaGFybGVz IE5lbHNvbiBSZWlsbHlcbiIpOw0KICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09J2EnKQ0K ICAgICAgICB4ID0geCArIDI7DQogICAgcHJpbnRmKCIgU28gZmFyLCB0aGUgc2NvcmUgaXM6 ICAgJWZcbiIseCk7DQogICAgcHJpbnRmKCJcblxuXG5cbiIpOw0KICAgIHByaW50ZigiMTQp IFdoaWNoIHN0YXJzaGlwIGlzIGR1YmJlZCAnVGhlIEdyZWF0IEV4cGVyaW1lbnQnXG4iKTsN CiAgICBwcmludGYoIkEpIEVudGVycHJpc2VcbiIpOw0KICAgIHByaW50ZigiQikgRXNzZXhc biIpOw0KICAgIHByaW50ZigiQykgRXhjZWxzaW9yXG4iKTsNCiAgICBwcmludGYoIkQpIExl eGluZ3RvblxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChhPT0nYycpDQogICAgICAg IHggPSB4ICsgMjsNCiAgICBwcmludGYoIkhleSBkdWRlIG9yIGR1ZGV0dGUsIHRoZSBzY29y ZSBpcyBub3cgICAlZlxuIix4KTsNCiAgICBwcmludGYoIjE1KSBXaG8gd2FzIHRoZSBjb21t YW5kZXIgdGhlIEV4ZXRvciBkdXJpbmcgVGhlIE9yaWdpbmFsIFNlcmllcz9cbiIpOw0KICAg IHByaW50ZigiYSkgUm9uYWxkIFRyYWN5XG4iKTsNCiAgICBwcmludGYoImIpIFdpbGxhcmQg RGVja2VyXG4iKTsNCiAgICBwcmludGYoImMpIEdlb3JnZSBCdXJuc1xuIik7DQogICAgcHJp bnRmKCJkKSBCaWxsIENsaW50b25cbiIpOw0KICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09 J2EnKQ0KICAgICAgICB4ID0geCArIDI7DQogICAgcHJpbnRmKCJUaGUgc2NvcmUgaXMgbm93 ICVmXG4iLHgpOw0KICAgIHByaW50ZigiXG5cblxuMTYpIFdobyBwbGF5ZWQgRmFsb3c/XG4i KTsNCiAgICBwcmludGYoImEpIFJvYmVydCBXYWxrZXIsIEpyXG4iKTsNCiAgICBwcmludGYo ImIpIFdpbGxpYW0gU2hhdG5lclxuIik7DQogICAgcHJpbnRmKCJDKSBMZW9uYXJkIE5pbW95 XG4iKTsNCiAgICBwcmludGYoImQpIEpvZWwgQnJvb2tzXG4iKTsNCiAgICBzY2FuZigiJWMi LHgpOw0KICAgIGlmIChhPT0nZCcpDQogICAgICAgIHggPSB4ICsgMjsNCiAgICBwcmludGYo IlRoZSBzY29yZSBpcyBub3cgICAlZlxuIix4KTsNCiAgICBwcmludGYoIjE3KSBXaG8gd2Fz IHRoZSBjb25uIG9mZmljZXIgb2YgdGhlIEVudGVycHJpc2UgRCBkdXJpbmcgMjM2OFxuIik7 DQogICAgcHJpbnRmKCJhKSBMdC4gU3VsdVxuIik7DQogICAgcHJpbnRmKCJiKSBFbnNpZ24g RmVsdG9uXG4iKTsNCiAgICBwcmludGYoImMpIFdhbHRlciBLb2VuaWdcbiIpOw0KICAgIHBy aW50ZigiZCkgUGF0cmljayBNYU5lZVxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChh PT0nYicpDQogICAgICAgIHggPSB4ICsgMjsNCiAgICBwcmludGYoIiBTbyBmYXIgdGhlIHNj b3JlIGlzICAgJWZcbiIseCk7DQogICAgcHJpbnRmKCJcblxuMTgpIEhvdyBtYW55IEZlcmVu Z2kgUnVsZXMgb2YgQXF1aXNpdGlvbiBhcmUgdGhlcmU/XG4iKTsNCiAgICBwcmludGYoImEp IDIwMFxuIik7DQogICAgcHJpbnRmKCJiKSAyODVcbiIpOw0KICAgIHByaW50ZigiYykgMTAw MFxuIik7DQogICAgcHJpbnRmKCJkKSAyMDAwXG4iKTsNCiAgICBhPWdldGNoKCk7DQogICAg aWYgKGE9PSdiJykNCiAgICAgICAgeCA9IHggKyAyOw0KICAgIHByaW50ZigiVGhlIHNjb3Jl IGlzIG5vdyAgICVmXG4iLHgpOw0KICAgIHByaW50ZigiMTkpIFdobyB3YXMgdGhlIGFsbW9z dCBpbW1vcnRhbCBmcm9tIEVhcnRoP1xuIik7DQogICAgcHJpbnRmKCJhKSBRXG4iKTsNCiAg ICBwcmludGYoImIpIEZsaW50XG4iKTsNCiAgICBwcmludGYoImMpIFRyZWxhbmVcbiIpOw0K ICAgIHByaW50ZigiZCkgUmljaGFyZCBHZXJlXG4iKTsNCiAgICBhPWdldGNoKCk7DQogICAg aWYgKGE9PSdiJykNCiAgICAgICAgeCA9IHggKyAyOw0KICAgIHByaW50ZigiVGhlIHNjb3Jl IGlzIG5vdzogICAlZlxuIix4KTsNCiAgICBwcmludGYoIjIwKSBXaG8gd2FzIEtyYXg/XG4i KTsNCiAgICBwcmludGYoImEpIGEgS2xpbmdvblxuIik7DQogICAgcHJpbnRmKCJiKSBhIEZl cmVuZ2lcbiIpOw0KICAgIHByaW50ZigiYykgYSBSb211bGFuXG4iKTsNCiAgICBwcmludGYo ImQpIEEgVnVsY2FuXG4iKTsNCiAgICBhPWdldGNoKCk7DQogICAgaWYgKGE9PSdiJykNCiAg ICAgICAgeCA9IHggKyAyOw0KICAgIHByaW50ZigiVGhlIHNjb3JlIGlzIG5vdyAlZlxuIix4 KTsNCiAgICBwcmludGYoIjIxKSBXaGVyZSBpcyBTdGFyIEZsZWV0IENvbW1hbmQgKG9yIEFk bWlyYWxpdHkpIGxvY2F0ZWQ/XG4iKTsNCiAgICBwcmludGYoImEpIFNhbiBGcmFuY2lzY28s IENhbGlmb3JuaWEsIFVTQSwgRWFydGhcbiIpOw0KICAgIHByaW50ZigiYikgU2hpa2Fociwg VnVsY2FuXG4iKTsNCiAgICBwcmludGYoImMpIEJhYnlsb24gNVxuIik7DQogICAgcHJpbnRm KCJkKSBOZXcgWW9yaywgVVNBLCBFYXJ0aFxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlm IChhPT0nYScpDQogICAgICAgIHggPSB4ICsgMjsNCiAgICAgICAgcHJpbnRmKCJUaGUgc2Nv cmUgaXMgJWZcbiIseCk7DQogICAgcHJpbnRmKCIyMikgV2hhdCBsYXN0IHdvcmRzIGRpZCBL aXJrIHNheSB0byBLcnVnZT9cblxuIik7DQogICAgcHJpbnRmKCJhKSBOb3cgeW91IGNhbiBr aXNzIHlvdXIgYnV0dCBnb29kYnllXG4iKTsNCiAgICBwcmludGYoImIpIEkgaGF2ZSBoYWQg ZW5vdWdoIG9mIHlvdSFcbiIpOw0KICAgIHByaW50ZigiYykgSG93IGFib3V0IGRpbm5lciBh bmQgYSBkYXRlP1xuIik7DQogICAgcHJpbnRmKCJkKSBJIGhhdGUgeW91ciBndXRzIVxuIik7 DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChhPT0nYicpDQogICAgICAgIHggPSB4ICsgMjsN CiAgICBwcmludGYoIkhleSwgeW91ciBzY29yZSBzbyBmYXIgaXMgJWZcbiIseCk7DQogICAg cHJpbnRmKCIyMykgV2hvIHdhcyBHdWluYW4/XG4iKTsNCiAgICBwcmludGYoImEpIGRpcmVj dG9yIG9mIEFsaWVuc1xuIik7DQogICAgcHJpbnRmKCJiKSBiYXJ0ZW5kZXIgb2YgMTAgRm9y d2FyZFxuIik7DQogICAgcHJpbnRmKCJjKSBFbmdpbmVlciBhYm9hcmQgdGhlIEh1ZHNvblxu Iik7DQogICAgcHJpbnRmKCJkKSBhIGNoYXJhY3RvciBpbiBhIFNoYWtlc3BlYXJlIHBsYXlc biIpOw0KICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09J2InKQ0KICAgICAgICB4ID0geCAr IDI7DQogICAgICAgIHByaW50ZigiVGhlIHNjb3JlIGlzICVmXG4iLHgpOw0KICAgIHByaW50 ZigiMjQpIFdobyBvciB3aGF0IGlzIFRoZSBHcmVhdCBCaXJkIG9mIHRoZSBHYWxheHk/XG4i KTsNCiAgICBwcmludGYoImEpIENyZWF0b3IgR2VuZSBSb2RkZW5iZXJyeVxuIik7DQogICAg cHJpbnRmKCJiKSBhIG15dGhpYyBmaWd1cmUgb2YgdGhlIDIzcmQgY2VudHVyeVxuIik7DQog ICAgcHJpbnRmKCJjKSBuaWNrbmFtZSBvZiBXaWxsaWFtIFNoYXRuZXJcbiIpOw0KICAgIHBy aW50ZigiZCkgYSBhbmQgYlxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgICAgICBpZiAoYT09 J2QnKQ0KICAgICAgICB4ID0geCArIDI7DQogICAgICAgIHByaW50ZigiTm93IHRoZSBzY29y ZSBpcyAlZlxuIix4KTsNCg0KICAgIHByaW50ZigiXG5cblxuXG4yNSkgV2hvIHBsYXllZCBH b3dyb24gaW4gVE5HP1xuIik7DQogICAgcHJpbnRmKCJhKSBSb2JlcnQgTydSZWlsbHlcbiIp Ow0KICAgIHByaW50ZigiYikgSm9hbiBSaXZlcnNcbiIpOw0KICAgIHByaW50ZigiYykgSm9u YXMgUml2YXNcbiIpOw0KICAgIHByaW50ZigiZCkgSm9obm55IENhcnNvblxuIik7DQogICAg YT1nZXRjaCgpOw0KICAgIGlmIChhPT0nYScpDQogICAgICAgIHggPSB4ICsgMjsNCiAgICBw cmludGYoIlRoZSBzY29yZSBpcyBub3cgYXQgJWYiLHgpOw0KICAgIHByaW50ZigiXG5cbjI2 KSBXaGVyZSBpcyB0aGUgR3JlYXQgYmFycmllciBsb2NhdGVkP1xuIik7DQogICAgcHJpbnRm KCJhKSBMb2NhdGVkIGF0IHRoZSBjZW50ZXIgb2YgdGhlIE1pbGt5IFdheSBHYWxheHkuXG4i KTsNCiAgICBwcmludGYoImIpIHN1cnJvdW5kcyB0aGUgZ2FsYXh5LlxuIik7DQogICAgcHJp bnRmKCJjKSBhIGFuZCBiXG4iKTsNCiAgICBwcmludGYoImQpIG5vdCBvbiB0aGUgYWJvdmUg bGlzdFxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChhPT0nYScpDQogICAgICAgIHgg PSB4ICsgMjsNCiAgICAgICAgcHJpbnRmKCJUaGUgc2NvcmUgaXMgYXQgJWZcbiIseCk7DQoN CiAgICBwcmludGYoIjI3KSBXaGF0IG1vdmllIGZlYXR1cmVkIGdyYXZpdHkgb3IgbWFnbmV0 aWMgYm9vdHM/XG4iKTsNCiAgICBwcmludGYoImEpIFN0YXIgVHJlayBJOiBUaGUgTW90aW9u IFBpY3R1cmVcbiIpOw0KICAgIHByaW50ZigiYikgU3RhciBUcmVrIElJOiBUaGUgV3JhdGgg T2YgS2hhblxuIik7DQogICAgcHJpbnRmKCJjKSBTdGFyIFRyZWsgSUlJOiBUaGUgU2VhcmNo IGZvciBTcG9ja1xuIik7DQogICAgcHJpbnRmKCJkKSBTdGFyIFRyZWsgSVY6IFRoZSBWb3lh Z2UgSG9tZVxuIik7DQogICAgcHJpbnRmKCJlKSBTdGFyIFRyZWsgVjogVGhlIEZpbmFsIEZy b250aWVyXG4iKTsNCiAgICBwcmludGYoImYpIFN0YXIgVHJlayBWSTogVGhlIFVuZGlzY292 ZXJlZCBDb3VudHJ5XG4iKTsNCiAgICBwcmludGYoImcpIFN0YXIgVHJlayBHZW5lcmF0aW9u c1xuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChhPT0nZicpDQogICAgICAgIHggPSB4 ICsgMjsNCiAgICBwcmludGYoIlRoZSBzY29yZSB0aHVzIGZhciBpcyAlZiIseCk7DQogICAg cHJpbnRmKCJcblxuMjgpIFdoYXQgaXMgdGhlIHJlZ2lzdHJ5IG51bWJlciBvZiB0aGUgVVNT IEhhdGhhd2F5P1xuIik7DQogICAgcHJpbnRmKCJhKSBOQ0MgNTQ2NzhcbiIpOw0KICAgIHBy aW50ZigiYikgTkNDIDI1OTNcbiIpOw0KICAgIHByaW50ZigiYykgTkNDIDU2OThcbiIpOw0K ICAgIHByaW50ZigiZCkgTkNDIDE3MDFcbiIpOw0KICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAo YT09J2InKQ0KICAgICAgICB4ID0geCArIDI7DQogICAgcHJpbnRmKCJUaGUgc2NvcmUgaXMg bm93ICVmXG5cbiIseCk7DQogICAgcHJpbnRmKCJUaGUgYW5zd2VyIGlzIEIpIE5DQyAyNTkz LiBSZW1lbWJlciB0aGlzLlxuIik7DQogICAgcHJpbnRmKCJDb21tYW5kZXIgUmlrZXIgdG9v ayBjb21tYW5kIG9mIHRoaXMgc2hpcCBpbiAyMzY1LlxuIik7DQogICAgcHJpbnRmKCIyOSkg V2hhdCBjbGFzcyBkaWQgdGhlIEhhdGhhd2F5IGJlbG9uZyB0bz9cbiIpOw0KICAgIHByaW50 ZigiYSkgQ29uc3RpdHV0aW9uIENsYXNzXG4iKTsNCiAgICBwcmludGYoImIpIENvbnN0ZWxs YXRpb24gQ2xhc3NcbiIpOw0KICAgIHByaW50ZigiYykgTmVidWxhIENsYXNzXG4iKTsNCiAg ICBwcmludGYoImQpIEV4Y2Vsc2lvciBDbGFzc1xuIik7DQogICAgYT1nZXRjaCgpOw0KICAg IGlmIChhPT0nYicpDQogICAgeCA9IHggKyAyOw0KICAgIHByaW50ZigiVGhlIHNjb3JlIGlz IG5vdyAlZlxuIix4KTsNCiAgICBwcmludGYoIlxuXG4zMCkgV2hhdCB3YXMgQ29tbWlzc2lv bmVyIE5hbmN5IEhlZGZvcmQncyBqb2I/XG4iKTsNCiAgICBwcmludGYoImEpIEFzc2lzdGFu dCBGZWRlcmF0aW9uIENvbW1pc3Npb25lclxuIik7DQogICAgcHJpbnRmKCJiKSBhc3Ryb3Bo eXNpY2lzdFxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChhPT0nYScpDQogICAgeCA9 IHggKyAyOw0KICAgIHByaW50ZigiU2NvcmUgaXMgbm93ICVmIix4KTsNCiAgICBwcmludGYo IiBhbmQgdGhlcmUgYXJlIG9ubHkgMTAgcXVlc3Rpb25zIGxlZnQhIVxuXG4iKTsNCiAgICBw cmludGYoIjMxKSBXaG8gcGxheWVkIE1yLiBIZW5naXN0IGluICdXb2xmIGluIHRoZSBGb2xk Jz9cbiIpOw0KICAgIHByaW50ZigiYSkgSm9obiBGaWVkbGVyXG4iKTsNCiAgICBwcmludGYo ImIpIFJvYmVydCBXYWxrZXIgSnVuaW9yXG4iKTsNCiAgICBwcmludGYoImMpIE5pY2sgTmlj a2xhdXNcbiIpOw0KICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09J2EnKQ0KICAgIHggPSB4 ICsgMjsNCiAgICBwcmludGYoIlRoZSBzY29yZSBpcyBub3cgYXQgJWZcblxuIix4KTsNCiAg ICBwcmludGYoIjMyKSBIb2xiZXJnIDkxN0cgd2FzIHRoZSBob21ld29ybGQgdG8gd2hhdCBu ZWFybHkgIik7DQogICAgcHJpbnRmKCJpbW1vcnRhbD9cbiIpOw0KICAgIHByaW50ZigiYSkg TWlzdGVyIEZsaW50XG4iKTsNCiAgICBwcmludGYoImIpIE1pc3RlciBTcG9ja1xuIik7DQog ICAgcHJpbnRmKCJjKSBBcG9sbG8sIHRoZSBnb2Qgb2YgbG92ZSBhbmQgd2FyXG4iKTsNCiAg ICBhPWdldGNoKCk7DQogICAgaWYgKGE9PSdhJykNCiAgICB4ID0geCArIDI7DQogICAgcHJp bnRmKCJUaGUgc2NvcmUgaXMgbm93ICVmXG5cbiIseCk7DQogICAgcHJpbnRmKCJcblxuMzMp IFdoYXQgY2xhc3MgZGlkIHRoZSBIb29kIGluIFRORyBiZWxvbmcgdG8/XG4iKTsNCiAgICBw cmludGYoIkEpIEdhbGF4eSBDbGFzc1xuIik7DQogICAgcHJpbnRmKCJiKSBFbnRlcnByaXNl IENsYXNzXG4iKTsNCiAgICBwcmludGYoImMpIEV4Y2Vsc2lvciBDbGFzc1xuIik7DQogICAg cHJpbnRmKCJkKSBJbnRyZXBpZCBDbGFzc1xuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlm IChhPT0nYycpDQogICAgeCA9IHggKyAyOw0KICAgIHByaW50ZigiVGhlIHNjb3JlIHRodXMg ZmFyICVmXG4iLHgpOw0KICAgIHByaW50ZigiT25seSBzZXZlbiBtb3JlIHF1ZXN0aW9ucyB0 byBnbyIpOw0KICAgIHByaW50ZigiXG4zNC4gV2hhdCBpcyB0aGUgSG9yaXpvbidzIHJlZ2lz dHJ5IG51bWJlcj9cbiIpOw0KICAgIHByaW50ZigiYSkgTkNDIDE3M1xuIik7DQogICAgcHJp bnRmKCJiKSBOQ0MgMzQ1MVxuIik7DQogICAgcHJpbnRmKCJjKSBOQ0MgMzIxXG4iKTsNCiAg ICBwcmludGYoImQpIE5DQyA0MjI5NlxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChh PT0nYScpDQogICAgeCA9IHggKyAyOw0KICAgIHByaW50ZigiVGhlIHNjb3JlIGlzIG5vdyBh dCAlZlxuIix4KTsNCiAgICBwcmludGYoIjM1KSBXaGF0IGlzIElESUMgYW4gYWNyb255bSBm b3I/XG4iKTsNCiAgICBwcmludGYoImEpIEluIERpc3RyaWN0IEkgQ29tZVxuIik7DQogICAg cHJpbnRmKCJiKSBJbmZpbml0ZSBEaXZlcnNpdHkgSW4gSW5maW5hdGUgQ29tYmluYXRpb25z XG4iKTsNCiAgICBhPWdldGNoKCk7DQogICAgaWYgKGE9PSdiJykNCiAgICB4ID0geCArIDI7 DQogICAgcHJpbnRmKCJcbiBUaGUgc2NvcmUgaXMgbm93ICVmXG4iLHgpOw0KICAgIHByaW50 ZigiMzYpIFdobyB3YXMgYXJyZXN0ZWQgYW5kIHNlbnQgdG8gdGhlIHBlbmFsIGFzdGVyb2lk IG9mIFJ1cmEgIik7DQogICAgcHJpbnRmKCJQZW50aGU/XG4iKTsNCiAgICBwcmludGYoImEp IEtpcmsgYW5kIFNwb2NrXG4iKTsNCiAgICBwcmludGYoImIpIEtpcmsgYW5kIE1jQ295XG4i KTsNCiAgICBwcmludGYoImMpIFNwb2NrIGFuZCBNY0NveVxuIik7DQogICAgcHJpbnRmKCJk KSBTcG9jayBhbmQgU2NvdHRcbiIpOw0KICAgIGE9Z2V0Y2goKTsNCiAgICBpZiAoYT09J2In KQ0KICAgIHggPSB4ICsgMjsNCiAgICBwcmludGYoIlNjb3JlIGlzIG5vdyBhdCAlZlxuIix4 KTsNCiAgICBwcmludGYoIjM3KSBLaXJzdHkgQWxsbGV5IG1hZGUgaGVyIG1vdmllIGRlYnV0 IGluIHdoYXQgbW92aWU/XG4iKTsNCiAgICBwcmludGYoImEpIFN0YXIgVHJlazogVGhlIFdy YXRoIG9mIEtoYW5cbiIpOw0KICAgIHByaW50ZigiYikgU3RhciBUcmVrOiBUaGUgc2VhcmNo IGZvciBTcG9ja1xuIik7DQogICAgcHJpbnRmKCJjKSBBIE1vbnR5IFB5dGhvbiBNb3ZpZVxu Iik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChhPT0nYScpDQogICAgICAgIHggPSB4ICsg MjsNCiAgICAgICAgcHJpbnRmKCJUaGUgc2NvcmUgaXMgYXQgJWZcbiIseCk7DQogICAgcHJp bnRmKCIzOCkgV2hvIGNvbnRyYWN0ZWQgU2FrdXJvJ3MgRGlzZWFzZT9cbiIpOw0KICAgIHBy aW50ZigiYSkgQ29tbWlzc2lvbmVyIE5hbmN5IEhlZGZvcmRcbiIpOw0KICAgIHByaW50Zigi YikgTHQuIFNhYXZpa1xuIik7DQogICAgcHJpbnRmKCJjKSBDb21tYW5kZXIgU3BvY2tcbiIp Ow0KICAgIHByaW50ZigiZCkgQ2FwdGFpbiBKYW1lcyBULiBLaXJrXG4iKTsNCiAgICBhPWdl dGNoKCk7DQogICAgaWYgKGE9PSdhJykNCiAgICAgICAgeCA9IHggKyAyOw0KICAgICAgICBw cmludGYoIlxuIFRoZSBzY29yZSBpcyBhdCAlZlxuIix4KTsNCiAgICBwcmludGYoIjM5KSBX aG8gd2FzIHRoZSB2b2ljZSBvZiBTYXJnb25cbiIpOw0KICAgIHByaW50ZigiYSkgV2lsbGlh bSBTaGF0bmVyXG4iKTsNCiAgICBwcmludGYoImIpIEphbWVzIERvb2hhblxuIik7DQogICAg cHJpbnRmKCJjKSBKb2huIFdheW5lXG4iKTsNCiAgICBwcmludGYoImQpIEJyZW50IFNwaW5l clxuIik7DQogICAgYT1nZXRjaCgpOw0KICAgIGlmIChhPT0nYicpDQogICAgeCA9IHggKyAy Ow0KICAgIHByaW50ZigiVGhlIHNjb3JlIGlzIG5vdyAlZlxuIix4KTsNCiAgICBwcmludGYo IlxuXG40MCkgV2hpY2ggcGlsb3QgZmVhdHVyZWQgc2F1Y2VyIHNlcGVyYXRpb24/XG4iKTsN CiAgICBwcmludGYoImEpIFRoZSBDYWdlXG4iKTsNCiAgICBwcmludGYoImIpIFdoZXJlIE5v IE1hbiBIYXMgR29uZSBCZWZvcmVcbiIpOw0KICAgIHByaW50ZigiYykgRW5jb3VudGVyIGF0 IEZhcnBvaW50XG4iKTsNCiAgICBwcmludGYoImQpIEVtaXNzYXJ5XG4iKTsNCiAgICBhPWdl dGNoKCk7DQogICAgaWYgKGE9PSdjJykNCiAgICAgICAgeCA9IHggKyAyOw0KICAgIHByaW50 ZigiWW91IHNjb3JlZCAgJWYgb3V0IG9mIDEwMFxuIix4KTsNCiAgICB9DQoNCg0K --------------C025BCE5467AB2B434EC4CE5--