ÿPINFO.PXû?? þàšPINFO Copyright (C) 1980 Rational Dataþ„¥ Systems¼  þ¬C®ؾ®È¡8Û̹ÙÐÌØÙ›¾³ÿÿþ‹¡ØÙ›ØÙ›¾ •Çÿˆ¿ÙÚáö­5LØøŸË¡ŸÌØøÌØÙ𨸣ÌØø¢&ÚšØøÌٟáö­ 0Æž Æ žÜÌݚݢ‘Çÿ• ‚šÝ¢ šÝ¢ٚݢÇ€žÝ¢Ý£ ‚šÜž#Ýù¡Ì¹Ìݢݣ •šÝ£ ÂÝû¿ÚÝ£ ª!Æž!­hÆž Æ žÝÌÞšÞþr—¢‘Çÿ• ‚šÞ¢ šÞ¢ÙšÞ¢‘šÞ¢‘šÝž#AAZˆ® PAZˆ®È¡)Ê Ì¹ÜÐÌÚÜAZˆA•ÀޢܕA‚ˆÀº»ÜßáöQAZˆ® ZAZˆ®È¡)Ê Ì¹ÜÐÌÚÜAZˆA•ÀޢܕQ‚ˆÀº»ÜßáôÞù“ÌÆž!­/i ºÌÖÊÆÎ¡5²ž¶¢&¶øš¶¶š¶øÆª!Öʶø¢"ÎÌʂ̹ö­ALÆþž ÆžÚÌÛšÛ¢Ç%"šÚž#Ûù¡¹ÛüÅÌÆž!­2 ²ˆ•¤ˆ•¤AAZˆš²ˆ•¤ˆ•¤HAZˆš²ˆ•¤ˆ•¤IAZˆš²ˆ•¤ˆ•¤PAZˆš²ˆ•¤ˆ•¤QAZˆš²ˆ•¤ˆ•¤XAZˆš²ˆ•¤ˆ•¤YAZˆš²ˆ•¤ˆ•¤ZAZˆšÖÎ ¡Ö²s¦þcFCOM.CMϹֲs¦COM.CMÏÖ²sϸ²cˆ¤²€±øš²¶�ÇLj¾ÇÿÇÿˆË²¶�‚ÇLj¾ÇÿÇÿˆË„¡b¶‚¸¶cÅ¡:Ö¦(F)COM.CM file is too long.¥�!®ÒÏÖØÇÿˆÏÖØÏžÖ²sϲ¶cˆ¤²€±øš¹ö­™  ÖÆsÆ€±ÏÖÆs¦CLIFILEÏÖΠ̲ž¶¢þ…y&¶øš¶¶šÌÆÝÇLj¾ÇÿˆË¡Ü‚̶øÜÂÆݾ¿Ý‚̹ö̶݂øÂÜ¿®€³®€²È¡ðÊ€³Ì¹ÛÐÌÆÝÇLj¾ÌÝ‚ÌÌÆÛˆ•¤ˆ•¤øAZˆ®€´ÆÛˆ•¤ˆ•¤øAZˆ®€³È¡1Ê€´Ì¹ØÐÌڕ̶ø¢"ØAZˆA•ÀÆÚˆÀº»ØÊ€³Ã¡ôÛÊ€²Ã¡òÆÝÇLj¾ÇÿÇÿˆÃ¡îÖÆsÏ­þDÀ¦Tô´40ÌÙø ŽÌ­ ØŸšÖÎ ÌÙ‹¡Ù¹ ÖιÖι ¬¹¹6ÖÇÿˆ¥�!®ÒÏÖÛ¦Wrong operating system.ÏÖÛÏžÖØÎ­l²Ùˆ¤ÌÚøÃÚùIJ#Ùˆ¤¦ Я„Ì­6 ÆÙ¨€¯ÖˆÎ ֈΠ“„Ì€³ˆ®€µˆ®€´È¡)Ê€µÌþR¤€²¹Ê€²ÐÌ€²Ê€³ÖÊ€²ˆÎ „Ì€³Ê€²Ê€´Ã¡öÊ€³Ì­(³d Ø É¡ Ö0¥�!®ÒÏÖØ¥�!®ÒÏ ­$ÖÚ¥�!®ÒÏ ÖÛ ÏÙ¹öÖ¦January¥�!®ÒϹôÖ¦May¥�!®ÒϹôÖ¦ September¥�!®ÒϹôÖ¦February¥�!®ÒϹôÖ¦June¥�!®ÒϹôÖ¦October¥�!®ÒϹôÖ¦March¥�!®ÒϹþEôÖ¦July¥�!®ÒϹsÖ¦November¥�!®ÒϹ]Ö¦April¥�!®ÒϹJÖ¦August¥�!®ÒϹ6Ö¦December¥�!®ÒϹ ¬ ¹ú¿„Kí±y@ä§o4Ö ¥�!®ÒÏÖÛØÏ ­6 DÖØ¥�!®ÒÏ Ö:¥�!®ÒÏÖÙÎÖ:¥�!®ÒÏÖÚέ2ÖÆ�!Æ�_ÏÖÆ�!¦OUTPUTÏÖÆ4Ærǯþ¥`ÏÖÆ4¦CODEÏÖ¥�£Î§�££«�£§�££«�£§�£ŸÃ¡,Ö¥�!ÏÖ¦No program name.¥�!®�¤ÒÏÖÊ�¤Ï¹ì¥§�£ªc¥?¯¡;Ö¥�!ÏÖ¦PX PINFO program[.PU] [listing]¥�!®�¤ÒÏÖÊ�¤Ï¹ì®�¥¥¾®�¤È¡@Ê�¥«¹èЫ¥蛾³ÿÿþ‹¡¥蛥蛾a•A‚Çÿˆ¿èÊ�¤Ã¡ö¥¾É¡ ¥Ì�¤ÖÆ�¤¥cþDšÏÖÆ�¤¦.PXfÏÆ�¤ªcÖ¥Æ�¤¥¾•ÏÆ�¤¦.PX·Ö¥Æ�¤¥¾•ÏÆ�¤¦.PU·„¡ ¥Ì�¤ÖÆ�¤¥cÏÖÆ�¤¦.PXfÏÆ�¤ªc§�££«�£§�£ŸË¡ Ö¥�!§�£ÏÖ¥�!ÏÖ¥4¥ÏÖ¥4ÏÖ¥�!ÏÖ Çÿˆ¥�!®�¤ÒÏÖÊ�¤¥ÏÖÊ�¤ÏÖ Çÿˆ¥�!®�¤ÒÏÖÊ�¤Ö¦.==============================================Æ�þД¥¥¾ÏÆ�¥ÏÖÊ�¤ÏÖ¥�!Ï¥rÌ�¤§�¤¢�<Ì�¥§�¤¢�0Ì�¦Ö¦ Compiled:¥�!®�§ÒÏÖ Çÿˆ¥�!®�§Òϧ�¥ø¹'Ö¦AOS.¥�!®�§ÒϹ Ö¦RDOS.¥�!®�§ÒϹ ¬¹1Ö§�¥ùÎÖ.¥�!®�§ÒÏÖ§�¥úÎÖ¥�!ÏÖ Çÿˆ¥�!®�§ÒÏÖÊ�§ ÇÿˆÏÖ§�¦ø§�¦ù§�¦úÎÖ¥�!ÏÖ Çÿˆ¥�!®�§ÒÏÖÊ�§ ÇÿˆÏþÈSÖ§�¦û§�¦ü§�¦ýÎÖ¥�!ÏÖ¥�!ÏÖ¥rÎ ¡2Ö¦Separately compiled subprogram.¥�!®�¥ÒÏÖÊ�¥Ï§�¤£€¬¹ôÖ¦)Contains unresolved assembler references.¥�!®�¥ÒÏÖÊ�¥Ï¹ò§�¤¢�LÌ�¥Ö¦ PLINKed to:¥�!®�¦ÒÏÖÊ�¦ ÇÿˆÏÖÊ�¦§�¤¢�ÏÖÊ�¦ÏÖ Çÿˆ¥�!®�¦ÒÏÖÊ�¦ ÇÿˆÏÖ§�¥øþ$ê§�¥ù§�¥úÎÖ¥�!ÏÖ Çÿˆ¥�!®�¦ÒÏÖÊ�¦ ÇÿˆÏÖ§�¥û§�¥ü§�¥ýÎÖ¥�!Ϲ;Ö¦No assembler references.¥�!®�¥ÒÏÖÊ�¥Ï¹¬¹5à §�¤£€­¹ðÖ¦(Contains unresolved external references.¥�!®�¥ÒÏÖÊ�¥Ï¹sÖ¦$External modules have been bound in.¥�!®�¥ÒÏÖÊ�¥Ï¹:Ö¦þQ›No external references.¥�!®�¥ÒÏÖÊ�¥Ï¹¬¹4o®Ö¥�!ÏÖ¦Segment ¥�!®�¥Ò ÏÖÊ�¥¦BytesÏÖÊ�¥¦BlockÏÖÊ�¥ÏÖ¦------- ¥�!®�¥Ò ÏÖÊ�¥¦-----ÏÖÊ�¥¦-----ÏÖÊ�¥Ï®�¦®�¥È¡_Ê�¦«¹èЫ§�¤èˆ¤ùË¡?Ö§�¤¢@舤¥�!®�¦Ò ÏÖÊ�¦§�¤èˆ¤ùÏ ÖÊ�¦§�¤èþƒðˆ¤øÏ ÖÊ�¦ÏèÊ�¥Ã¡î§�¤£€¥Ë¡3Ö¥�!ÏÖ¦ Overlay size ¥�!®�¥ÒÏÖÊ�¥§�¤£€¥Ï ÖÊ�¥ÏÖÆ�!ÏÖÆ4Ï­¦<èø¹×–œÔ°J ^ ® T z Þ ž ’D þÿINTERPOK.PXû?? 8þRINTERPOK Copyright (C) 1980 Rational Dataþ„é Systems¼  8% þŸ~ÖÆÆ?ÏÖÆ¦OUTPUTÏÖ¥ÏÖ¦Interpreter OK¥®€ƒÒÏÖÊ€ƒÏÖÆÏ­ƒ Jü,ü ?ÏÖÆ¦þo)OUTPUTÏÖ¥ÏÖ¦Interpreter OK¥®€ƒÒÏÖÊ€ƒÏÖÆÏ­ƒ JÿPASCALO.PXû?? þb|?œ œÔ/ž!ÔCOMPILEROPSYSINICOMPINITSHOWERROCOMPFINIDECSEGMEBODSEGME Copyright (C) 1980 Rational Dataþ… Systems¼ 4  Hþ´ Æž Æ žÜÌÝÌÝ¢ šÝ¢ٚݢÇ€žÝ¢Ý£ ‚šÞšÞ¢‘Çÿ• ‚šÜž#Þù¡Ì¹Ìݢݣ •šÝ£ ÂÞû¿ÚÝ£ ª@Æž!­lÖ¥„óÏÖ¥„ó®¦&PX PASCAL[O][switches] sourcefile[.PA]ÏÖØÏÖ¥„óÏÖ¥„ó®¦switch meaningÏÖØÏÖ¥„ó®¦------ -------ÏÖØÏÖ¥„ó®¦þ4¬!/A analysis to @OUTPUTÏÖØÏÖ¥„ó®¦/A=afile analysis to afileÏÖØÏÖ¥„ó®¦!/C conform to standardÏÖØÏÖ¥„ó®¦/E=efile errors to efileÏÖØÏÖ¥„ó®¦/L listing to @LISTÏÖØÏÖ¥„ó®¦/L=lfile listing toþ�â lfileÏÖØÏÖ¥„ó®¦!/N no codefile createdÏÖØÏÖ¥„ó®¦"/S swap compiler phasesÏÖØÏÖ¥„ó®¦"/V verbosity to @OUTPUTÏÖØÏÖ¥„óÏ­>Æž ÆžÚÌÛšÛ¢šÛ¢‘šÛ¢NšÚž#ÛüÌÆž!­2ئ abcdefghiª@ƤƤþblƤž ®®È¡4ß̹ÝÐÌØÝ�‚Â0Æݤø † Ž‚¿ØÝ�‚Â0Æݤø Ž‚¿ÝÞáöØÂ.¿ØÂ_¿ØÂ_¿ÖÎÌØÌÖÆ¦?pidÏÖÆØDÏÖÆ¦.TMPHÏÆª@ØÂ0Üd† Ž‚¿ØÂ0Ü † Ž‚¿ØÂ0Ü Ž‚¿­�* ÂÆÚª@ÖÆÎÆ&ž Æ( žÊ(Ì)Ê)Ì*Ê)¢ šÊ)¢ÙšÊ)¢Ç€žÊ)£ÆªÿÊ)£Æ¾‚¿Ê)¢Ê)£‚šÊ)¢þÍÇ€žÊ)¢Ê)£ ‚šÊ*šÊ*¢‘Çÿ• ‚šÊ(ž#Ê*ù¡Ì¹<Ê*ûÌ'Ê'‘á̹ÌÊ)¢Ê)£ •šÊ)£ ÂÊ'¿Ê'Å¡ ÛÊ)£ ª@¹Û¦ª@Æ&ž!­&Ê «‚V«‚W¥„ƦAOSª¥„½§‚V—Çœ ½«‚P«‚0«‚-®i®hÈ¡ÊiÌC¹ÊCÐÌC¥„¿ÊC¤ šÊCÊháöÖ¥‚ÕΓ¡ ÖÎ ž¹¥‚Õ?¯¡ÖÎ žÖ¦NÆÎ“«‚þ�ƒ,Ö¦SÆÎ“«‚0Ö¦CÆÎ«‚6‚ÌFÖÊFÆGΡ1ÆG¾á"ÆG¾³ÿ‹¡¥‚öÆG¾0•¤šÊF‚ÌF¹ôÖ¦AÆÎ¡WƦ¯¡ ÌE¹ ÌEÖ¥…uÆÏÖ¥…uÏ®i®hÈ¡)ÊiÌD¹ÊDÐÌD¥„¿ÊD¤¥„¿ÊD¤øÊEœ šÊDÊháòÖ¦LÆ"ΡSÆ"¦¯¡ Æ"¦@LISTª@Ö¥…÷Æ"ÏÖ¥…÷Ï®i®hÈ¡(ÊiÌD¹ÊDÐÌþ*eD¥„¿ÊD¤¥„¿ÊD¤øœ šÊDÊháðÖ¦EÆÎ¡_Ʀ·¡WÆÆ"¯¡ ÌE¹ ÌEÖ¥†yÆÏÖ¥†yÏ®i®hÈ¡)ÊiÌD¹ÊDÐÌD¥„¿ÊD¤¥„¿ÊD¤øÊEœ šÊDÊháîÖ¦VÆÎ¡P¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤ø¯¡ ¥„¿¤ šÖ¥‚þîÕÎ¥‚վš0Ö¥‚ÕÆh¥‚Õ¾•ÏÆh¦.PA¯¡¥‚ÕÖ¥‚ÕÆh¥‚Õ¾•ÏÆhª@¥‚ÕÌhÖÆh¥‚Õ@ÏÖÆh¦.PACÏÆhª@Ö¥‰w¥‚ÕÏÖ¥‰wϧ‚,¡Ö¥‚´ÎÖ¥†û¥‚´ÏÖ¥†ûÏ­ ŒîkÕ‰ئ abcdefghiª@ƤƤƤž ®®È¡4Þ̹ÜÐÌØÜ�‚Â0Æܤø † Ž‚¿ØÜ�‚Â0Æܤø Ž‚¿ÜÝáöØÂ$¿ØÂ$¿þMüØÂ$¿ØÌÖÆØ@ÏÖÆ¦.WKCÏÆª@¶¡ØÌÖÆ¦FÏÖÆØAÏÆª@¹ØÌÖÆ¦BÏÖÆØAÏÆª@­‘&Æ Ö¥„óÏÖ¥„ó®¦0PX PASCAL[O][switches] sourcefile[.PA] [options]ÏÖØÏÖ¥„óÏÖ¥„ó®¦switch meaningÏÖØÏÖ¥„ó®¦------ -------ÏÖØÏÖ¥„ó®¦!/þŠ+C conform to standardÏÖØÏÖ¥„ó®¦&/L listing to sourcefile.LSÏÖØÏÖ¥„ó®¦!/N no codefile createdÏÖØÏÖ¥„ó®¦"/S swap compiler phasesÏÖØÏÖ¥„ó®¦%/V verbosity to $TTO/$TTO1ÏÖØÏÖ¥„óÏÖ¥„ó®¦oþ/Ÿption meaningÏÖØÏÖ¥„ó®¦------ -------ÏÖØÏÖ¥„ó®¦afile/A analysis to afileÏÖØÏÖ¥„ó®¦efile/E errors to efileÏÖØÏÖ¥„ó®¦lfile/L listing to lfileÏÖØÏÖ¥„óÏ­p Æž ÆžÚÌÛšÛ¢Ç%"šÚž#Ûù¡¹ÛüÅÌÆžþì/!­2 ÌÌA®Z®È¡,Þ̹ÜÐ̲rÙ•¤ÜA•Àº¡ Û¡¹¹ÌÚÜšÜÝáöÛÌ­,H ÆتÿÖ¥„óÏÖ¥„󮀂ÆÏÖÊ€‚ÏÖ¥„󮀂ÏÖÊ€‚Ï ž­�:ÆتÿÖ¥…÷ÆÏÖ¥…÷Ï®€„®€ƒÈ¡0Ê€„Ì€‚¹Ê€‚ÐÌ€‚¥„¿Ê€‚¤¥„¿Ê€‚¤øœ šÊ€‚Ê€ƒÃ¡ö­+ƒ Z «‚V«‚W¥„þç3ƦRDOSª¥„½§‚V—Çœ ½«‚P«‚0«‚-®®È¡Ú̹ØÐÌ¥„¿Ø¤ šØÙáö² •¤•¤Aš² •¤•¤Hš² •¤•¤Iš² •¤•¤Pš² •¤•¤Qš² •¤•¤Xš² •¤•¤Yš² •¤•¤Zš¶¡Ö²€â¦FCOM.CMϹֲ€â¦COM.CMÏÖ²€âϸ²~¤²� øš²~þ„>¶�¾Çÿ˲~¶�‚¾ÇÿË„¡F¶‚¸¶cÅ¡ Ö¦(F)COM.CM file is too long.ÎÖ²€âϲ~¶¤²� øš¹ô­j5 z¸¸¶‚¸¸²~¶¾ˡ)¶‚¸²¶•¤¶²~¶¾¿¶‚¸¹ö¶‚¸²¶•¤¶¿®®È¡yÛ̹ØÐ̲~¶¾¸¶‚¸¸²þ1 Ø•¤•¤ø®² Ø•¤•¤ø®È¡1Ü̹ÙÐ̶•¸²r¶•¤ÙA•À²¶Àº»ÙÛáôØÚáò²~¶¾Çÿáð¶É¡ ÖÎ ž¹²•¤?¯¡ÖÎ ž¥‚Õ²•¤ª@Ö¥‚ÕÎ¥‚վš0Ö¥‚ÕÆ¥‚Õ¾•ÏÆ¦.PA¯¡¥‚ÕÖ¥‚ÕÆ¥‚Õ¾•ÏÆª@­Zõ´T#p‚®¶®È¡èÛ̹ØÐÌÖþ}زÎ “¡=²Ø•¤¾á.²Ø•¤¾³ÿ‹¡¥‚ö²Ø•¤¾0•¤š¹ì¶³"‹“¡Ö¦Invalid local switch.ιòÖ¥…u²Ø•¤ÏÖ¥…uÏ®®È¡"Ü̹ÙÐÌ¥„¿Ù¤¥„¿Ù¤øœ šÙÛáö¹ðÖ¥†y²Ø•¤ÏÖ¥†yÏ®®È¡"Ü̹ÙÐÌ¥„¿Ù¤¥„¿Ù¤øœ šÙÛáô¹ZþÖ}²r•¤LA•Àº¡Ö¦Duplicate listing files.Îֲؕ¤Î¹¬AL¹ÆŒ XØÚáê­j 1�Ñ�²r•¤LA•Àº¡ÖÌÖÆ¥‚Õ@ÏÖÆ¦.LSCÏÆÎ²r•¤NA•Àº“«‚,²r•¤SA•Àº“«‚0²r•¤CA•Àº«‚6²r•¤VA•Àº¡P¥„¿¤¥„¿¤øþبœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š­"ÎÖÆ€âÆ� ÏÖÆ€â¦CLIFILEÏÖÎ ÌÖÎÖÎÖÎÖÎ¥„¿¤ø¯¡ ¥„¿¤ š¥‚ÕÌ�!ÖÆ�!¥‚Õ@ÏÖÆ�!¦.PACÏÆ�!ª@Ö¥‰w¥‚ÕÏÖ¥‰wϧ‚,¡Ö¥‚´Î Ö¥†û¥‚´ÏÖ¥†ûÏÖÆ€âÏ­B   0ÌÙø ŽÌ­þº®ؾ®È¡3Û̹ÙÐÌØÙ¾³ÿÿþ‹¡ ØÙÂØÙ¾ •¿ÙÚáö­1 H®$ ®#È¡Ê$̹ØÐÌ¥‚öؤšØÊ#áöÖΫ‚<§‚<‹¡§‚<¹ ÖÎ ¹Öι ¬¹¹2Ö¥„ó®#ÏÖÊ#¦Wrong operating system.ÏÖÊ#Ï ž­q$ˆÚ–jvöV–ä ’~PNþ ê’ j²(þ&i‘Ì¥�AA•¤Ø‚šØ‚Ì¥�4ؤ¦AND ÐÑ¥�4ؤ¢'š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦ARRAY ÐÑ¥�4ؤ¢,š¥�4ؤ¢ š¥�BA•¤Ø‚šØ‚Ì¥�4ؤ¦BEGIN ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�CA•¤Ø‚šØ‚Ì¥�4ؤ¦CASE ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦CONST ÐÑ¥�4ؤ¢š¥�4ؤþ¢ š¥�DA•¤Ø‚šØ‚Ì¥�4ؤ¦DIV ÐÑ¥�4ؤ¢'š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦DO ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦DOWNTO ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�EA•¤Ø‚šØ‚Ì¥�4ؤ¦ELSE ÐÑ¥�4ؤ¢ š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦END ÐÑ¥�4ؤ¢ š¥�4ؤ¢ š¥�FA•¤þöFØ‚šØ‚Ì¥�4ؤ¦FILE ÐÑ¥�4ؤ¢.š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦FOR ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦FUNCTIONÐÑ¥�4ؤ¢ š¥�4ؤ¢ š¥�GA•¤Ø‚šØ‚Ì¥�4ؤ¦GOTO  ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�HA•¤Ø‚š¥�IA•¤Ø‚šØ‚Ì¥�4ؤ¦IF ÐÑ¥�4ؤ¢š¥�4ؤþñî¢ šØ‚Ì¥�4ؤ¦IN ÐÑ¥�4ؤ¢)š¥�4ؤ¢ š¥�JA•¤Ø‚š¥�KA•¤Ø‚š¥�LA•¤Ø‚šØ‚Ì¥�4ؤ¦LABEL ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�MA•¤Ø‚šØ‚Ì¥�4ؤ¦MOD ÐÑ¥�4ؤ¢'š¥�4ؤ¢ š¥�NA•¤Ø‚šØ‚Ì¥�4ؤ¦NOT ÐÑ¥�4ؤ¢&š¥�4ؤ¢ š¥�OA•¤Ø‚šØ‚ÌþŒÒ¥�4ؤ¦OF ÐÑ¥�4ؤ¢ š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦OR ÐÑ¥�4ؤ¢(š¥�4ؤ¢ š¥�PA•¤Ø‚šØ‚Ì¥�4ؤ¦PACKED ÐÑ¥�4ؤ¢+š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦PROCEDURÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦PROGRAM ÐÑ¥�4ؤ¢!š¥�4ؤ¢ š¥�QA•¤Ø‚š¥�RA•¤Ø‚šØ‚ÌþøÀ¥�4ؤ¦RECORD ÐÑ¥�4ؤ¢-š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦REPEAT ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�SA•¤Ø‚š§‚6“¡,؂̥�4ؤ¦SEGMENT ÐÑ¥�4ؤ¢0š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦SET ÐÑ¥�4ؤ¢*š¥�4ؤ¢ š§‚6“¡,؂̥�4ؤ¦STRING ÐÑ¥�4ؤ¢3š¥�4ؤ¢ š¥�TA•¤Ø‚šØ‚Ìþ¼‚¥�4ؤ¦THEN ÐÑ¥�4ؤ¢ š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦TO ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦TYPE ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�UA•¤Ø‚šØ‚Ì¥�4ؤ¦UNTIL ÐÑ¥�4ؤ¢ š¥�4ؤ¢ š¥�VA•¤Ø‚šØ‚Ì¥�4ؤ¦VAR ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�WA•¤Ø‚šØ‚ÌþÁÉ¥�4ؤ¦WHILE ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦WITH ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�XA•¤Ø‚š¥�YA•¤Ø‚š¥�ZA•¤Ø‚š¥�Z‚A•¤Ø‚š­Ž¥‚ež§‚eÌØšØ¢šØ¢š¥‚dž§‚dÌØšØ¢šØ¢š¥‚cž§‚cÌØšØ¢šØ¢š¥‚bž§‚bÌØšØ¢šØ¢šØ¢š¥‚`ž§‚`þ&ÌØšØ¢šØ¢Ÿš¥‚až§‚aÌØ>‚C‚šØ¢šØ¢§‚cš¥‚_ ž§‚_ÌØ¢šØšØ¢šØ¢šØ¢§‚e𨢠𨢠𨢧‚cšØ¢š­ÞÆ žÙÌÛ¦INTEGER ÐÑÛ¢ §‚ešÛ¢šÖÙÓÆ žÙÌÛ¦REAL ÐÑÛ¢ §‚dšÛ¢šÖÙÓÆ žÙÌÛ¦CHAR ÐÑÛ¢ §‚cšÛ¢šÖÙÓÆ žÙÌÛ¦BOOLEAN ÐÑÛ¢ §þ뺂bšÛ¢šÖÙÓÆ žÙÌÛ¦TEXT ÐÑÛ¢ §‚ašÛ¢šÖÙÓÆ žÙÌÛ¢šÛ¦MAXINT ÐÑÛ¢ÇÿšÛ¢ §‚ešÖÙÓŸÌ®®È¡VÜ̹ÚÐÌÆ žÙÌÜ¢ §‚bšÚáܦFALSE ÐѹܦTRUE ÐÑÜ¢ؚܢښܢšÖÙÓÙÌÚÛáö§‚b¢ÙšÆ žÙÌÛ¦NIL ÐÑÛ¢ §‚`šÛ¢ŸšÛ¢šÛ¢šÖÙÓ­Šþu³Ž¥‚m ž§‚mÌئ ÐÑØ¢ ŸšØ¢š¥‚l ž§‚lÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢šØ¢š¥‚k ž§‚kÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢šØ¢šØ¢š¥‚j ž§‚jÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢šØ¢š¥‚iž§‚iÌئ ÐÑØ¢ ŸšØ¢šØ¢ŸšØ¢ šØ¢šØ¢šØ¢šØ¢šØ¢šØ¢šþOdØ¢š¥‚hž§‚hÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢𨢠šØ¢šØ¢šØ¢šØ¢šØ¢šØ¢šØ¢š­XÆ€¨³ ` ½§‚6¡Æ€¨Æ€¨¼³1Ÿÿàœ ½Æ•¤¦READ ÐÑÆ•¤¦READLN ÐÑÆ•¤¦WRITE ÐÑÆ•¤¦WRITELN ÐÑÆ•¤¦EOF ÐÑÆ•¤¦EOLþ9›N ÐÑÆ•¤¦PRED ÐÑÆ•¤¦SUCC ÐÑÆ •¤¦ORD ÐÑÆ •¤¦SQR ÐÑÆ •¤¦ABS ÐÑÆ •¤¦NEW ÐÑÆ •¤¦FILETITLÐÑÆ•¤¦PURGE ÐÑÆ•¤¦CONCAT ÐÑÆ•¤¦LENGTH ÐÑÆ•¤¦DATE ÐÑÆ•¤¦EOLCHAR ÐÑÆ•¤¦þÜFSUBSTR ÐÑÆ•¤¦INDEX ÐÑÆ•¤¦MOVELEFTÐÑÆ•¤¦MOVERIGHÐÑÆ•¤¦EXIT ÐÑÆ•¤¦IDSEARCHÐÑÆ•¤¦TREESEARÐÑÆ•¤¦TIME ÐÑÆ•¤¦FILLCHARÐÑÆ•¤¦APPEND ÐÑÆ•¤¦REWRITE ÐÑÆ•¤¦PAGE ÐÑÆ•¤¦CLOSE ÐÑÆ þ}[•¤¦SEEK ÐÑÆ!•¤¦RESET ÐÑÆ"•¤¦GET ÐÑÆ#•¤¦PUT ÐÑÆ$•¤¦SCAN ÐÑÆ%•¤¦SIZEOF ÐÑÆ&•¤¦PACK ÐÑÆ'•¤¦UNPACK ÐÑÆ(•¤¦ODD ÐÑÆ)•¤¦CHR ÐÑ®€¬)®€«È¡}Ê€¬Ì¹ÙÐÌÙ³0�à‹ÌÙÆ€¨¼‹“¡RÚ¡Æ ž¹Æ þµ¥žØÌ€¬Ê€¬ÆÙ•¤ÑÊ€¬¢ŸšÊ€¬¢ ŸšÚ¡ Ê€¬¢š¹Ê€¬¢šÊ€¬¢šÊ€¬¢ÙšÖØÓÙÊ€«Ã¡ö­x¬ôÆ•¤¦PWROFTENÐÑÆ?•¤$𯕤¦MEMAVAILÐÑÆ?•¤šÆ•¤¦ROUND ÐÑÆ?•¤šÆ•¤¦TRUNC ÐÑÆ?•¤šÆ•¤¦SIN ÐÑÆ?•¤šÆ•¤¦COS ÐÑÆþ²�?•¤šÆ•¤¦LOG ÐÑÆ?•¤šÆ•¤¦ARCTAN ÐÑÆ?•¤šÆ •¤¦LN ÐÑÆ? •¤šÆ •¤¦EXP ÐÑÆ? •¤šÆ •¤¦SQRT ÐÑÆ? •¤šÆ •¤¦MARK ÐÑÆ? •¤ 再¤¦RELEASE ÐÑÆ? •¤!𯕤¦SYSCALL ÐÑÆ?•¤#š§‚6¡ džp ÌM¹þLÜ ÌMÌ®O®NÈ¡ðÊO̹ÜÐÌܹöÆ žØÌOÊO¢ §‚ešÊO¢š§‚d̹ôŸÌ§‚e̹~Æ žØÌOÊO¢ §‚dšÊO¢š§‚e̹a§‚d̹ZÆ žØÌOÊO¢ §‚`šÊO¢šÌŸÌ¹<Æ žØÌOÊO¢ §‚`šÊO¢š¹$¬¹‰nfM T:ÜÊM‹“¡[Ý¡Æ ž¹Æ žÙÌOÊOÆÜ•¤ÑÊO¢šÊO¢Æ?Ü•¤øšÝ¡ÊO¢þ.›š¹ÊO¢šØŸË¡Ø¢ŸšÊO¢ ÚšÊO¢ØšÖÙÓÜÊNáò­p–Oâ«‚8«‚[«‚Y«‚s«‚5«‚4«‚3«‚2Ÿ«‚f«‚U«‚T«‚S«‚1««‚QÇÿ«‚OÇÿ«‚NŸ«„Å«„W«‚G«‚r«‚q«‚F«‚E«‚.«‚D«‚A««‚?«‚>«‚=«‚+«‚*ÌÆ¾ë‚9ÆÂ¿ÆÂ0§‚;Ç膂¿ÆÂ0§‚;d† Ž‚¿ÆÂ0§‚; † þÁ"Ž‚¿ÆÂ0§‚; Ž‚¿®®È¡.Þ̹ÜÐÌ¥ƒ÷ܤÌÞ¢šÞšÞ¢¦ ÐÑÜÝáö¥‚pÇ‚ž¥„ÊÌÖÆ¦Copyright (C) ÏÖÆÆÏÖÆ¦ Rational Data Systems(ÏÆªP­y^¥ƒ³4 ½¥ƒ¥ƒ¼œ ½¥ƒ³|¥ƒ¼œ ½¥ƒ³t ½¥ƒ³ø ½þ•¥ƒ ³€ ½¥ƒ³t€ ½¥ƒ³ø ½¥‚  ½ ­  Ú•ÌÚÉ¡ Ú ‚ÌÙ•ÌÙd†ÌÙdŽÌÚ�• †Û‚قن‚܆‚Ü�•ŽÌ­B ÖØ®¦'Rational Data Systems Pascal Compiler [ÏÖØ®¦release ÏÖÙ¥„ÆÏÖÙ.ÏÖÙÏ ÖÙ.Ï É¡ÖØ®0ÏÖØ® Ï ¡Öþ„LØ®¦ , overlaidÏÖØ®]ÏÖÙÏ­š ÖØÏÖØ®¦line seg procÏÖÙÏÖØ®¦==== === ====ÏÖÙϧ‚gÌÖØ®§‚A‚Ï ÖÚ:ÏÖÚÙ£ Ï ÖÚÙ£ Ï ÖÚ ÏÖÚ¥‚tÏÖÚÏ­| Æت¶“¡ Ö¶® ,ϸֶ® ¦ /ÏÖÊ ÆÏ­ 6ÖØ®"ÏÖÛ¥‚ÕÏÖÛ"ÏÖÛ¦ cþÕfompiled on ÏÖÛ²ÏÖÛ ÏÖÛ§‚XÏ ÖÛ ÏÖÛ² ÏÖÛ ÏÖÛ§‚;Ï ÖÛ¦ at ϧ‚R š֨®§‚RÏ ÖÛ:Ï¹ÖØ®§‚RÏ ÖÛ:ϧ‚I š֨®§‚IÏ ÖÛ:Ï¹ÖØ®0ÏÖÛ§‚IÏ ÖÛ:ϧ‚@ Å¡ ÖØ®§‚@Ï ¹ÖØ®0ÏÖÛ§‚@Ï ÖØÏ̧‚-§‚6‚§‚,“‚§‚0“‚ÌÚÅ¡öÖØ® ¥‚Õ¾‚ÏÖÛ¦using the þoptionÏÚš֨®sϧ‚-¡ Ö¦ByteswapΧ‚6¡Ö¦ ConformanceΧ‚,“¡ Ö¦NocodeΧ‚0“¡ Ö¦SwappingÎÖØ®.ÏÖÛÏÖØÏ­ ˜ Ö§‚;§‚H§‚XÎ ¹q²¦Sundayª¹x²¦Mondayª¹i²¦Tuesdayª¹Y²¦ Wednesdayª¹G²¦Thursdayª¹6²¦Fridayª¹'²¦Saturdayª¹þ_Ŭ¹yl_QA2%§‚H¹ö² ¦Januaryª¹ô² ¦Februaryª¹ô² ¦Marchª¹ô² ¦Aprilª¹ô² ¦Mayª¹ô² ¦Juneª¹² ¦Julyª¹r² ¦Augustª¹c² ¦ Septemberª¹Q² ¦Octoberª¹A² ¦Novemberª¹0² ¦Decemberª¹¬ ¹½¯ ”ˆ~sh[K=.¥„¿¤ø‹¡1Ö¥…÷þZ Î Ö¥…÷Î Ö¥…÷®¦ line seg proc off nstÏÖØÏ¥„¿¤ø‹¡ Ö¥…uÎ Ö¥…uÎ ¥„¿¤ø‹¡Ö¥„óÏÖ¥„óÏÖ¥„óÎ Ö¥„óÎ ¥„¿¤ø‹¡ Ö¥†yÎ Ö¥†yÎ ­”µ Ç&‚«‚]Ç «‚K¥‚;¥‚H¥‚Xž%¥‚R¥‚I¥‚@ž ÖΧ‚,¡Ö¥†ûÏ«‚ZÖÎÖÎÖÎ «‚n«¥ƒ ¤ÌÊ¢šÊŸšÊ¢ŸšÊ¢ŸšÊ¢š«‚Bþ¬M«‚CÖÓÖÓÖÎÖÎÖÎÖÎÖΫ¥ƒ ¤ÌÊ¢šÊŸšÊ¢ŸšÊ¢ŸšÊ¢š¥‚gž§‚gÌÊ¢ŸšÊ¢êšÊ¦PROGRAM ÐÑÊ¢ ŸšÊ¢šÊ¢šÊ¢šÊ¢šÊ¢íšÊ¢šÊ¢šÊ¢ š¥‚x¦ declarationsª ï!áwÖÓï᥂t¥Ñ¥ƒ÷í¤¢¥Ñ¹ÖÓÖÓïá>ÖÓïá"ƞʢ¥Ñʧ„Śʫ„ÅÖÓþ„©ïË«¹«ì¡öïáÖÓ¹Ö)ÓïáÖÓ¹ÖaÓ¹F§‚6¡ÖÓ¹;«‚3«‚s«‚r«¥ƒ÷í¤ÌÊ¢šÊšÊ¢¦EXTERNALÐÑ¥‚tʢѥ„¿¤ø‹¡Ö¥„óÎ ¥„¿¤ø‹¡Ö¥…uÎ Æž ¥‚o ž§‚oÌÊ¢ŸšÊ¢šÊ§‚gšÊ¢ êšÊ¢§‚nšÊ¢éšÊ¢§‚sšÊ¢šÊ¢ Êš­ X^tLÎn¶\ ÀþZƒ ¨¢”xþþAŒÖØÏÖØÏÖØ®¦Error Message SummaryÏÖÙÏÖØ®¦===== ======= =======ÏÖÙÏÖØÏ­XÖØ®¶Ï ÖÙ ÏÖÙ²@ÏÖÙÏ­$ÖÆÆ@ ÏÖÆ¦ERMSGFILÏÖÆ¦ PASCAL.ERÏÖÆÏ§‚P„“¥„¿¤ø‹„¡Ö¥…÷Î¥„¿¤ø‹¡Ö¥…uÎ¥„¿¤ø‹¡Ö¥†yÎ¥„¿¤ø‹¡Ö¥„óÎþƒ;®aÇÿ®`È¡tÊa̹ØÐÌØ¥‚¼ ‹¡ZÖÆØÏ ÖÆÏ§‚P„“¥„¿¤ø‹„¡Ö¥…÷Î¥„¿¤ø‹¡Ö¥…uÎ¥„¿¤ø‹¡Ö¥†yÎ¥„¿¤ø‹¡Ö¥„óÎØÊ`áöÖÆÏ­va <þZ½ÖØÏÖØ®¦Segment NumberÏÖÚ¦ Segment NameÏÖÚ¦ Size (Bytes)ÏÖÚÏÖØÏ®®È¡>Û̹ÙÐÌ¥ƒ÷Ù¤ÌÛùË¡"ÖØ®Ù•Ï ÖÜÛ¢‚ÏÖÜÛø•Ï ÖÜÏÙÚáö­;šÆت@Æ&³ÿÿþ‡ÿÿþƒÿ@ ½Æ¾Ì$Ì%Ê$áÌ%¹ÆÊ$¾Æ&¼‹¡Ê$•Ì$¹Ì%Ê%¡öÊ$ƾɡÙÖÆÆ6Ê$‚Æþ‘v¾Ê$•ÏÆ6ª@¹Ù¦ª@­OT~ÆÙª@ØøÌ$ÖÆ$Æ@ÏÖÆ$¦ AÏÆ$ªÿØøØø¾Â¿ØØø‚š­B6Æ$ت@ÆÙª@ÆFž ÆEžÊEÌHÊH¢Ç€žÖÊH¢ÆÎÆGÊH¢¨§‚<á ÊH¢Çš¹ÊH¢šÊHšÊEž#ÊH¢ÆG¨ÊH¢Ç€žÖÊH¢Æ$Χ‚<á ÊH¢Çš¹ÊH¢šÊHšÊEž#ÆFž!­F–¥„¿¤ø‹¡#þÏ~Ö¥„óÏÖ¥„ó®§‚AÏ ÖÛ¦ linesÏÖÛÏ¥„¿¤ø‹¡#Ö¥…uÏÖ¥…u®§‚AÏ ÖÛ¦ linesÏÖÛϧ‚P„“¥„¿¤ø‹„¡#Ö¥…÷ÏÖ¥…÷®§‚AÏ ÖÛ¦ linesÏÖÛÏ¥„¿¤ø‹¡Ö¥…uΧ‚P„“¥„¿¤ø‹„¡Ö¥…÷ÎÆž Çÿ«‚M¥Çž«®®È¡ Ü̹ÚÐÌ¥ƒ÷Ú¤ÌÖÜùÓ ÖÜøÓ ÚÛáö®®È¡8Ü̹ÚÐþ¬Ì¥ƒ÷ڤ̮®È¡Þ̹ÙÐÌÖÜ¢Ù•Â¾Ó ÙÝáôÚÛáò®®È¡Ü̹ÚÐÌÖÓ ÚÛá𮥄ʾ®È¡Ü̹ÙÐÌÖ¥„ÊÙÂ¾Ó ÙÛáʾ‚®.®È¡Ü̹ÙÐÌÖÓ ÙÛáì®!®È¡Ü̹ÙÐÌÖÓ ÙÛáêÖ§‚;Ó Ö§‚HÓ Ö§‚XÓ Ö§‚RÓ Ö§‚IÓ Ö§‚@Ó Ö§‚<Ó ÖÓ Ö Ó ÖÓ ÖÓ ÖÓ ÖÓ Ö§‚FÓ ®®È¡Ü̹þz3ÙÐÌÖÓ ÙÛá观+¡ÖÓ ¹ÖÓ §‚*¡ÖÓ ¹ÖÓ Ö§‚ZÓ ëÇÉ¡ÖÓ ¹æ§‚,¡gÖ¥†ûÏ «‚Z«‚YÖÓÆž!¥‚¼ ·¡ Ö¥†ûϹ<Ö¥†ûϧ‚3§‚+�§‚*�¡ ¥‚Õ¥‚Õ¾ÂU¿¹ ¥‚Õ¥‚Õ¾ÂX¿Ö¥‚Õ¥‚ÕÎÖ¥‚´¥‚Õέ{®0Wwº¢çÐpØ®2 þþ¡ÞØÄØÈ„¡ÖØÓ ¹ÖGÇ€‚Ó ÖØÆÆÓÖÙÓ ÖÚÓ ­0ØÈ¡ÖØÓ ¹ÖÇ€ØÇ†‚Ó ÖØÇŽÓ ­(ÖØÇ€‚Ó Ø&á+óÌÖÚùÓ ®Úù®È¡Ü̹ÙÐÌÖÚ¢Ù•Â¾Ó ÙÛáö­BÖØÇ€‚Ó Ø3áxÌÌÙá̹ÛÈó¢Û•¤øÃ„¡Û‚̹öÚÛ•‚ÌñÝšÝÅ¡)ÖÝÓ Û®Ú®È¡ß̹ÜÐÌþ^#Öó¢Ü•¤øÓ ÜÞáô¹ë•«Ýá Ö󢕤øÎ¹cسÀ0$@‹¡ÖÙÓ ¹LØ'ÃÙÈ„¡ë•«ÖÇçÙ‚Ó ¹4ØJÃÙÈ„¡ë•«ÖÇ×Ù‚Ó ¹Ø#ÃÙÈ„¡ë•«ÖÇøÙ‚Ó ¹ÖÙέ”Ï ôØ@ÃØMÃ�¡ÖØÇ€‚Ó ÖÙÓ ÖÚÓ ¹Jس³€‹¡ÙáÖØ‚Î¹ÖØÙÎÙÅ¡ÖÚιÙá ÖØ‚ÚÎ¹ÖØÇ€‚Ó ÖÙÓ Öþ:&ÚέnÙÌÝù¡^ÖØÇ€‚Ó Ýúë••ÌÚÄÚÈ„¡ÖÚÓ ¹=ÝøÃ¡&ݧ„Wš§„WcáÖÇÿÓ¹§„W‚«„W¥„XÝø¤ÝúšÝø‘ÌÖÇøÝø•Ýø•Ó ¹'ÖÝúÆÆÓØ9á ëǂ̹ëÌÝ¢ÚšÖÜÓ ÖÛÓ ­”ÖÎ ñ§‚bË¡ÖÇÓÖ!ØÎ­ ØžØøÌÙ¢šÙšÙ¢Ç`mš­ ØÌÛúÌÛ¢šÛøË¡ þiÎ¥„XÛø¤ëšÛ¢ëš§‚7“¡6ÙÇ`mÉ¡/ÙÇÄ¡ ÙÇ•Ì9̹!ÌÙ«Öèë¾è낾ÆÓÖÚØÎ¹öÛú«­<j ñŸË¡ôò¹öñùÃñ§‚dË„¡Öóι ñ§‚`áÖιñ§‚dáÖ3ιÖ3ιZó¹3ôáÖ'õι Ö6§‚nô•õι-Ö#ôι&Ö:ι Ö<ñøÎ¹Ö>ι¬¹ ;% ¹¹¬¹ˆVñùÃòË„¡ÖñøÎþÁ« ­$ ´ ØÌÙøŸË¡[Ùú¹EÙûáÖ+Ùüι Ö8§‚nÙû•Ùüι;ÙûË¡ÖÇ.Ó¹Öι'Ö;ι!Ö=ÙøøÎ¹Ö?ι¬¹ M3!­lñŸË¡nò¹VÖñÓ¡Ö&ιÖÇ-Ó¹Mó¹.ôáÖ%õι Ö2§‚nô•õι$ôË¡Ö"ôô‚ιÖǾÓ¹¬¹6 ¹ ¬¹^K« « « ­þ W|ÜÌÊþ« « Ê£¹ö« Ê£ « Ê£ «¹ôÊ£ á Ö'Ê£ ιÖ6§‚nÊ£ •Ê£ Ϋ « ¹ô¥ƒ §¤ÌÊùá« Êú« ÊûÊ£ ‚«¹!§‚ná Ö'ÊúιÖ6ÊúΫ Ê£ « Ê£ ¡8ÖÎÊ£ ÃÊ£ Ã�Ê£ Ä¡« Ê£ áÖPι« ÖÊ£ Ê£ Î ¹AÊ£ Ë¡Öǖӹʣ“¡ÖÇÂÓ¹« Ê£ ‚« þEÕ«¹¬¹ æùÀ?ñŸË¡ñùÈñøÅ„¡ÖΫ 弄 ¼Æ¼œ‹“¡Ö;ÓÖ¥ƒ ¼Æ¼œ Ó弄 ¼‹¡ÜïáîÆ¥ ¨ÝŸË¡ÝùË¡ ÖÇŠÓŸÌÖÎÖÓÖÆ¼³œ ÎÖÎ ñŸË¡ ñùË¡ÖqÓÝŸË¡òÝÌÖÊúñÓ¡LÊúŸËÖÝÓ“„¡<ÖÊúÆ Æ Ó §‚D„“¡ÖÊ ÎÖÊ ÎÖÎÊ Ë¡ÖÊ €ÎÊ Å¡ÖιÖþ}ιÖÇ‹ÓÊû« « « « ñŸË¡LÊü¡3Êýá« ÖÝÓ§‚D„“„¡ÖιÖBι « Ö@ÊþÊýιÖ$ñøÎñùÈñøÅ„¡« ïË¡ðïáÖÓ¹ÖZÓ¹àïáæñŸË¡ñùË¡ Önjӟ« ÖÓïáèñŸË¡êÖñúÆ ÓÊ ŸÃ¡ ÖǘÓŸ« ¹ìÊ ÌÊþ« ó¹õÊ£ ‚«¹$ôÊ£ ‚« ¹ÖÇ,Ó¹¬¹ $Ê£ ¡8ÖÎÊþñÅ£ ÃÊ£ Ã�Ê£ Ä¡« Ê£ áÖPι« ÖÊ£ Ê£ Î ñŸË¡ñùÈñøÅ„¡ÖΫ ÖÓ¹Ö Ó¹âñŸË¡äñÌÊùÃÊùÃ�¡~ÊùáÖÎ « « « Êú« ¹Oñ§‚aáÖVÎÆ¥ ¨ÖÎ¥ ƨÖO Îó¹õ>‚«¹ô>‚« ¹ ¬¹ÖÎÊú« ñŸÃ¡ÖÇ#ÓñŸË¡ñùÈñøÅ„¡« ¹ÖÇ�ÓÖÓïÆ¼¥ƒ ¼œ‹“þª`¡ÖEÓÖÆ¼¥ƒ ¼œ Ó¹Þ­Ì/16ÑÙàâ°ÏÉ2 #:ïáÖ ÆÓÖÓ¹ Ö$Ó§‚kÌÖÆ¼ Üέ0ØêšÖÓê§Å¡ê«­ ñŸË¡ñùÉ¡ÖÎ ¹Öέ%¶£ áÖVζÌßÿÌߣ á ߣ Ë¡ÖÇ+Ó¶£ ö£Ä¡.¶þŸÃ¡Öι ® ¶þîxþø®È¡Ê ̹ÞÐÌÖÎÞßáöïáìٟáÖ~ÓÖÓÖ²¼"œ ÎñŸËÙŸË„¡ðÙþÌÚŸË¡òÙ£áôñùÈ¡qÖÚÓñ§‚cÄòÄ¡ÖÇ€&‚Ó ÖÓ ÖóÓ §‚_« ¹ÖÎ ÚùáÖ ÚøÎ¹6Úùç‚D„“„¡ÖÚüÎÖÚûÎÖιñ§‚eÃÖÚ§‚dÓ„¡ Ö Î§‚d« ¹CÖñÓòÄÌÖÎÛÖÚÓ„¡,Úÿ“¡'ÖPÎÚúŸË¡ÖÚúÆÆÓ ÜÝ•‚ñ£þå‚Ë¡ÖÇŽÓÚ« ¹Hòá=ÖÎÖñÓÖÚÓ„¡ñ£Ú£É¡ÖÇ¿ÓóáÖgÓÚùá ñøÚøË¡ÖÇÓ¹ÖÇšÓÖÚñÓ“¡ÖÇÓÙŸË¡ÙÿÌïË¡îïáÖÓ¹Ö(ÓÙŸË¡ÖÇíÓ¶Ìߣ á Öߣ ι*ߣ íá ÖNߣ ιߣ á ÖSߣ ι ÖMߣ ߣ ζþ« ­R¶rtÍÐ 42Ü£ áðÌÜ£ ÌÞ³ðþŸ­``‹¡ÖVÎÞ³`‹¡ÖÎïáÖÓ¹Þ³@t‹¡Ì¹Ö ÓÞ³€‹¡ÖƼ"œ ÎÖÎ Þ¹ôÖÎ#¹òÖÎ$¹òÖÎ)¹òÖÎ*¹òÖÎ1¹òñŸË¡ ñùÄ¡ÖÇÔÓ§‚e« ¹òñŸË¡%ñ§‚eáÖιñ§‚dáÖι ÖÇÕÓ§‚e« ¹òñŸË¡%ñ§‚eáÖιñ§‚dáÖι ÖÇÖÓ§‚e« ¹òÖιòÖιòÖιòÖÆ¼ œ ÎÖ>þ¢,Χ‚e« ¹òÖÎ+¹òÖιòÖÆ¼œ ÎïáÖÓ¹ÖÓÖÆ¼ œ ÎÖOΧ‚e« ¹òÖιò® ® È¡DÊ Ì ¹Ê ÐÌ ÖÆ¼œ ÎÖÎñŸË¡ ñ§‚eË¡ÖÇ×ÓïáÖÓ¹ÖǤÓÊ Ê Ã¡öÖÆ¼ œ ÎÖÎñŸË¡ ñ§‚eË¡ÖÇØÓÞáÖ%Î¹Ö Î¹òÖιòÖÎ,¹òÖιòÖιòÖιòÖÎ-¹òñŸË¡ ñ§‚eË¡ÖÇCÓÖþPÎÖΧ‚b« ¹ò§‚D„“¡ÖÎÖÇÿÎÖÎñŸË¡ ñ§‚eË¡ÖÇDÓ§‚c« ¹Z¬)¹RëèåâCEãåâÌ¢xu†tq]ZW*,)02*6§©°¨¥±©«Hª§©¦‡ß¡ïáÖÓ¹ÖÓ¹ÖÎ2­vYÒñ§‚eá Ö Î§‚d« Øø§‚eá Ö Îا‚dš­*3ñ§‚dÃØø§‚dÃ�¡ÖØÎ3þg>­4弄¼‹“¡Ö:ÓÖÆ¼¥ƒ¼œ ÓŸ« 弄¼‹¡æï¹ìÖ^ ÆÓÖÓÜ£áÖÆ¼ ÜΫ ¹'Ü£áÜÌÊþ« « ¥ Ê¢¨¹ ÖÆ¼ ÜÎñŸË¡ñÌÊùáÊú« ¹ê§‚e« « ¥ ¥¨Öӹ꧂d« « ¥ ¥¨ÖÓ¹ê§á§‚c« ¹Æ žÊ §‚_¨ Ê ¢§šÊ « « ¥ ¥¨ÖÓ¹êÖÓÖÆ¼ œþúÀ ÎïáÖÓ¹Ö*Ó¹êÖÓÖÆ¼ Î7ñ§‚bËòË�¡ÖÎ ÖÎñŸË¡ñ§‚bË¡ ÖLJÓŸ« ¹ó„“« ¹êÖÓÆ ½ÌÆ žÊ ÌÊ¢ŸšÊšÊ¢šïá Ê « « ÖÓ¹îÖÆ¼³œ ÎñŸË¡òñùË¡ ÖLjÓŸ« ¹ôÖÊ úñÓ¡öÌÌ òÃóÈ„¡ ÌóÌ Ê Ì ëÌ ÖÎ ï#áHÖÓÌ ÖÆ¼³œ ÎÖÊ úñþòÓ“¡ ÖljÓŸ« Þ¡òÃóÈ„¡óÌ ¹ÖΠ̹ÖÎ Þ¡Ê «ÆÆ¼Ê Ê ”œ ½¹ÖÊ Îß¡ÖιÌÊ ¢ñšÊ « ¹ÖÇÓï˫쓡ÖÓì¡ðïáÖÓ¹Ö Óß¡1Ƽ·¡"§‚p¢Æ¼ ½§‚pš§‚p« « ÖÎ ÖΫ ¹§‚p¢Æ¼ ½§‚pš§‚p« « ¹U¬&¹N ð ¨"$þ=˜&(*,.02468:<>@BD„HudïÆ¼‹“¡Ö@ÓÖÆ¼¥ƒ¼œ Ó¹è­!(ÒÏóõýZ7ÖÆ¼³€œ Î7ï'áîÖΠƥ ¨ðÌ ÖÓÖÆ¼³€œ Î7ÖÎ ÜŸËñŸË„¡òÊ ¹öÖÆÎ4ܧ‚eÃñ§‚eÄ¡Öι/ܧ‚dÃñ§‚dÄ¡ÖιÜùÃÖÜñÓ„¡Ö ι ÖÇøÓŸ« ¹ôÖþfeÆÎ3ܧ‚dÃñ§‚dÄ¡Öι ÖÇùÓŸ« ¹pܧ‚eÃñ§‚eÄ¡Öι ÖÇüÓŸ« ¹Rܧ‚eÃñ§‚eÄ¡Öι ÖÇþÓŸ« ¹4ܧ‚bÃñ§‚bÃ„Ì Ê ¡Öι ÖÇÓŸ« ¹¬¹ Ò‹.lP¹Ÿ« ¹ð­ $B6ï(Ãð`‹„¡ðáÌ ¹Ì ÖÓ¹Ì ÖÆ¼³œ Î6ñ§‚eáÊ áÖÎ Öι%ñ§‚dáþJKÊ áÖÎ ÖÎ¹Ê Ë¡ ÖÇôÓŸ« ï(áðÖΠƥ ¨ðÌ ÖÓÖÆ¼³œ Î6ÖÎ ÜŸËñŸË„¡ôÊ ¹öÖÆÎ4ܧ‚eÃñ§‚eÄ¡Öι/ܧ‚dÃñ§‚dÄ¡ÖιÜùÃÖÜñÓ„¡Öι ÖÇõÓŸ« ¹yÖÆÎ4ܧ‚eÃñ§‚eÄ¡Öι/ܧ‚dÃñ§‚dÄ¡ÖιÜùÃÖÜñÓ„¡Öι ÖÇöÓŸ« ¹0ܧ‚bÃñ§‚bÃ„Ì Ê ¡Ö ιþ˜ ÖÇ÷ÓŸ« ¹¬¹¼u.¹Ÿ« ¹ò­ ‚5ÙúŸË¡ÖÙúÆÆÓ ÚÛ•‚Øø£Ë¡ÖÇñÓØÙš­,8ž§‚JÉ¡ž«‚JÖÆ¼³œ Î5ï)áìÖñÓñ§‚cÃ�òÄÌñŸË¡ñùÈ¡ÖÎ ¹ÖÎÆ¥ ¨ðÌ ÖÓÖÆ¼ Î5ÖñÓñ§‚cÃ�òÃ„Ì ñŸË¡ñùÈ¡ÖÎ ¹ÖÎÜŸËñŸË„¡îÊ á+ñùáþ¾¯ÖÜñúÓ¡Ö Î¹ ÖÇïÓŸ« ¹ Öǂӟ« ¹ðÜñË¡ÖÆÎ4Ê¡ÖñÓ¡ñÿ“¡ ÖÎÖÆñÎ8¹Ê ¡ÖÜÓ¡Üÿ“¡ ÖPÎÖ¥ ÜÎ8Ê ÖÜÓ„ÊÖñÓ„�¡Ì̹ ÖÜñÓÌÜùÌÊ¡òÜøÌ Ê¹öܧ‚dáÌ ¹Ì ¹ôÊ Ç‹¡ÖǃÓÌ ¹ôÊ Ç ‹¡ÖÇ„ÓÌ ¹ôÌ ÖÜÓ¡vÜÿ¡UÖÜÓñ§‚cÄ¡Ì ¹Aܧ‚cÃÖñÓ„¡1ÖRþ‘9ÎÊ ¹ Ì ¹ Ì ¹Ì ¹ Ì ¹¬ ¹Ì ¹Ì ¹Ì ÜúŸË¡ÖÜúÆÆÓ ÊÊ•‚Ì ¹Ê Ç‹¡ÖÇòÓ¹4Ê Ç‹¡ÖÇóÓÌ ¹ ÖÇ…ÓÌ ¹¬¹ðãÑ¿0Ê ¹<Ö5Ê Ê Î¹FÖ4Ê Ê Î¹<Ö1Ê Ê Î¹2Ö0Ê Ê Î¹(Ö7Ê Ê Î¹Ö/Ê Ê Î¹¬ ¹ D<*6$¹ÖÇðÓ§‚b« « ­ þ‘]n…¨Ö²¼Ç@œ ØÎïá Ö²¼ Î¹Ö3Ó­0:Ö²¼Çœ Î9弄¼‹“¡öï˫쓡ÖÓì¡ôï áÖÓ¹Ö^Ó­:< D=êÌ ê‚Ì Ö�Óê§Å¡ê«ÖÆ Î ÖÆ Î ÖÆ Î ïá[Ö  ²Ó¶ÌÊþÌÌÊ£áÌÊ£ ÌÊ£ ̹ ÖÇ›ÓŸÌØŸË¡ØùÅÖ§‚dþ·‰ØÓ�¡ ÖÇ�ÓŸÌÖÓ¹ÖÓÖ²¼ÇÀAœ ÓïáaÖÓÖ²¼ÇÀœ ÎñŸË¡GñùË¡ÖÇÓ¹9ÖØñÓ¡+ÖÎ ØŸË¡Øùç‚D„“„¡ÖØüÎÖØûÎÖÎÖ.Ê Î¹ÖǑӹÖÇ»ÓÖ²¼ÇÀœ ÓïÇ€‹¡oïáH̹DÌïÌÖÓÖ²¼@œ ÎñŸË¡GñùË¡ÖÇÓ¹9ÖØñÓ¡+ÖÎ ØŸË¡Øùç‚D„“„¡ÖØüþÀªÎÖØûÎÖÎÖ.Ê Î¹ÖÇ Ó¹Ö7ÓÖ²¼@œ ÓïáÖÓ¹Ö6ÓÖÞÎÖ!Ê ÎÖ6Ê ÎÖÆÎê•«Ö9Ê ÎÖÊ Î ¥ ƨÖÎ ßáÖPιÖÎÖÎÖÆÎÖÊ Î §‚=‚«‚=Ö²¼ Î9§‚=•«‚=¥ ƨÖÎ Ö6Ê ÎÖCÎÖ!Ê ÎÖÊ Î ê•«­@Bž§‚JÉ¡ž«‚Jï"ádéÌ¥ƒ ݤùˡݕ̹ö¥ƒ ݤüþº,ÌÞŸË¡*ÞÌ Ê ù§áÊ ûù¡ÖÇ¥Ó¹ÖÊ ûÎ ¹¹Ê ú̹ôÖÇ ÓÖÓïáÖÓ¹Ö0ÓïÆ¼œ‹“¡ÖHÓÖÆ¼ Ó弄¼œ‹¡òÆ ž ïá&Ö| ÆÓÖÓÜ£á ÖÆ¼ ÜιÖÜÎ:¹IïÌÖÓß¹(ÖÎ=¹;ÖÎ?¹6ÖÎB¹1ÖÎ;¹,ÖÎ>¹'ÖÎ@¹"ÖÎA¹ÖÎC¹¬¹0/0/Æ ž!ïÇ&‹“¡ÖIÓÖÆ¼ þlìÓ­# @9«‚7ÖÎD¥ƒ é¤û‚«„W؟á!¥‚t¦??----??ÐÑ¥‚x¦??----??ª ¹ð¥‚tØÑ¥‚x¦bodyª •ÌØ£áØþŸÃ¡Ú‚Ì¹ÚØþø‚ÌØÿÌ Ê ŸË¡òÊ ÌÊþŸË¡öÊ£ákÊþùÅ¡YÚ‚ÌÖ2Ê£ ÎÖ6ÚÎÖÊþÓ¡2ÊþÌÊÿ¡ Ö*ʣιÊúŸË¡ÖÊúÆÆÓ ÖQÝÞ•‚ι¹Ö(ÊþøÎ¹ÚÊþZšþø‚̹ Ê£áÚ‚ÌÊÿÌ ¹ô§‚A«‚>ê«¥ƒ é¤üÌÜŸË¡ÖܢΠÜûÜøšÜú̹îŸÌ ŸÌ §‚nç„ÅŸË„Ì ¥ƒ é¤úÌ Ê ŸË¡æÊ ÌÊþÌÖVÎÖ2Ê£ ÎÖ2Ê£ >‚ÎÊþ§‚aáÖιÖÊúøÎ§‚nË¡ÖιX§„şáÖιK§„Ţʯ¡;ʦINPUT Я¡Ê Ì ¹Ê¦OUTPUT Я¡Ê Ì §„Åø«„ÅÖιÖþ¨ÇÎÖOÎÖVÎÖ2Ê£ ÎÖÇ€&‚Ó ÌÊÊ•¾ áʕ̹ìÖÊÓ ®Ê®È¡Ê̹ÊÐÌÖÊÊ•Â¾Ó ÊÊáêÖOÎÊÿÌ ¹èÊ ¡ ÖVÎÖOÎÊ ŸË¡ÖVÎÖ2Ê £ ÎÖÎÖOÎÊ ŸË¡ÖVÎÖ2Ê £ ÎÖÎÖOÎÖ²¼Çœ Î9弄¼‹“¡äï˫쓡ÖÓì¡âï áÖÓ¹Ö ÓëÌ¥ƒ é¤úÌ Ê ŸË¡!Ê ÌÖVþbÎÖ2Ê£ ÎÖÎÖOÎÊÿÌ ¹àØþŸÃ¡Ö-ιÖ-ØþøÎ¥ƒ é¤üÌÜŸË¡$ÜÌÊûÌÊù“¡ÊúÇ`mË¡ÖǨÓÊú̹ާ„W•Ìë„¡ÖÓ ßÅ¡Ö륄Xߤø•Ó ß•Ì¹Ü؟á Ö§•Ó ÖÓ ¹ØÌÖ§Ê£•Ó ÖÊ£•Ó §Çÿ?Å¡ÖÇ7ÓÖëÙ•Ó ÖëÓ Ö§‚sÓ Ö§‚nÓ §‚8“¡«‚8¥ƒ÷í¤¢§‚ZšÖÓÇÿë•§‚?É¡ÖÇAÓþºã¹§‚?ë‚«‚?Æ ž!¥ƒa§‚s¤§‚?•š­­è.tv½Êä²#"*̧‚2§‚0„¡ ÖÆ¼ Í¹ò«‚5««‚Q«‚=Ö¥ƒ é¤øÓ ïáÖÓ¹ÖÓÖ§‚oøÎï§‚o£ ÃÌÜ“¡-§‚o£ áÖÓ¹ÖÓÖÆ¼§‚o£ —œ Óï§‚o£ ÃÌÜ弄¼‹�¡öÜ“¡§‚o£ áÖ`Ó¹Ö<Ó̹Bï˧‚3§‚nÄ�¡ÖÓ¹þb—.ÖÓï³€‹¡ ÖÓïË̹Ö=ÓÖÆ¼ ÓÌݧ‚oŸÃ�¡ô­ߺ ƒ$„#~„"„!„ „Ì…„ L þü ¸ 4`€†„………„„„„„„„„Ø„„„„ „ „ „ „ „„„„„„„6îƒp ¢²4^Îôƒ®¶ *!$!l!šŒˆDþÒ–ÇÿÙ€•Ú€ÉÙÉÚÉ„ÙÅÚÅ„�„¡Ì¹ÌÛÙÚ‚š­0Ùá̹ Ú€ÇÿÙ€†ÈÌÜ¡ ÌÛÙÚ�š¹Ì­.ݚ弄¼‹“¡ÖÓÖÆ¼¥ƒ¼œ Ó弄¼‹¡ìïáòéÌ ¥ƒ é¤ùˡ镫¹öÆžßÌʚʢšÊ¢šŸÌ Ì ÖÓïá=Æ žÊ ÌÊ¥ÑÊ¢ ßšÊ¢Ê šÊ¢Ê šÊ¢šÖÊ Óþ@›Ê ‚Ì Ê Ì ÖÓ¹Ö!ÓïÆ¼"œ‹“¡ÖFÓÖÆ¼"œ ÓïË¡ôߢÊ šß¢Ê šÊ «ïáÖÓ¹Ö,Ó¹îïáðÖ Æ ÓÖÓÊ £ánÆžßÌÊ ÌÊ¢ÊþšÊ¢šÖÊúÓ¡ ÖÇ”ÓÊ¢ŸšÊ¢Ê¢¨Êšï#áÖÓ¹ÖÓÖÆ¼ ÆÆ ÓߢÆ ¨ßúÞË¡ÖÇÃÓ¹Ê þÌߟˡÝßøš¹vÆžߢšÖƼ³þ~œ ÆÆ ÓÖÞÓ¡ ÖÇ ÓŸÌßÌÊ¢ÞšÊ¢Æ ¨Êšï#áÖÓ¹ÖǺÓÖÆ¼ ÆÆ ÓߢÆ ¨ßúÞË¡ÖkÓߟˡ7ßÌÊùá-ÊúŸË¡&Êú§‚dáÖÇ$Ó¹ÊüÊûÅ¡ ÖfÓÊ¢ÊüšÜßšïÆ¼‹“¡ÖGÓÖÆ¼ Ó¹ÜŸš­$Øqÿ1 nÌٟ˶„¡ôÙÌÝù¹kÙ§‚eËÙ§‚dË„¡8ÖÙÆÆÓ þ1)ÛÄ¡+ÌÚḹÇ@̸ÜÚÅ¡¶•¸Ü†Ì¹ö¹4ÖÝúΡÖÝúÆÆÓ Ú‚ÌÚÉ¡ÌÚ¸¹¬¹su2­N šÌØÌÖÚþΡ@¶¶‚Å¡¶ ‚¸ ¸ÌÚ¢¶ šÚ¢šÚ¢¶šÚ¢¶š¶¶‚¸¹/¶ ¶Å‚¸ ¸ÌÚ¢šÚ¢¶ šÚþŸË¡ ¶ Úþø‚¸ Ù¶ŸË„¡/¶ÌþôbÚ£ ¡%Ú£ áÚ¢š¹Ú£ ÈÚ£ È„¡ Ú¢šÚ¢š­¾²ž¶ÌÙ¢ŸšÙ¢ŸšÙ¢š¶¶šÖÓïáö¶¡² ž¹² ž¶ ÌÙ¢ ŸšÙ¢šÙ¢ŸšÙ¢šÌ«‚.Ö ² Ó«‚.¶ ŸÃ¡!̶ ¥ÑÖ¶ ÓÖÓïáÖÓ¹Ö8ÓïáXÖ ² Ó¶ þ¸¶ŸË¡;¶ùÈ¡/Ö§‚d¶Ó¡ÖÇÆÓþ·¶ ¢ ¶š¶¢¶ šØ¡Ö¶ ιÖnÓÖÓ¹Ö%ÓÖ²¼Çœ Ó¹Ö&ÓÖ²¼Çœ Ó¶¶ ¶Å‚šï áÖÓ¹ÖWÓŸ¸¶ ¸¶ ¸¶¸¶¸Ÿ¸ Ö²¼œ ² ²Ó¶úŸË¡Ö¶úþ¶ Ó“¡ÖoÓ² ž¶ ÌÙ¢¶šÙ¢¶ šÙ¢²¨Ù¢š¶ ¸¶ ¸ ï˫쓡ÖÓì¡ôïáþBJÖÓ¹Ö9ÓïáÖÓ¹ÖXÓï៸ ¹Ö²¼(œ ² ζ ¶Å¡¶ ¸¶¸¹¶ ¶ö¶Å„¡¶¸¶ ŸË¡%¶ ú¸ ¶ ¢¶ š¶ ¶ ¶Å‚š¶ ¸ ¹òïá%ÖÓï²¼œ‹“¡ÖNÓÖ²¼œ Ó¹Ö-Óï˫쓡ÖÓ¶¸ ¶¸ï Ãì�¡ð¶¸ ¶¸¶¢¶š­j’j»þS(È ŸÌŸÌŸÌï³ ‹“¡ÖÓÖÆ¼³ œ ÓïáðÞÌïáA¶¡Æ ž¹Æ žÊ ÌÊ¥ÑÊ¢ ŸšÊ¢ßšÊ¢šÊ¢šÊ ÌÖÊ ÓÖÓ¹ÖÓï‹“¡ÖAÓÖÆ¼³ œ Óï˫쓡ÖÓì¡öïáÖÓ¹Ö.ÓÖÆ¼³ œ ÆÆÎÊŸË¡ ÊùáÖlÓßÞË¡ßÌÊ¢ ÊšÖßÎßÌÊÿÌþnê¹ôÊ Ìïá)ÖÓï³ ‹“¡ÖÇ™ÓÖÆ¼³ œ Ó¹òŸÌÞŸË¡ÞÌÊÿÌ Ê¢ßšÞÌÊ Ì¹îïáÖÎ ¹ÜŸš­+08…4p² ž¶¶ š¶ ÌØ¢ŸšØšØ¢šÖÓïál«‚.Ö ² Ó«‚.¶ ŸÃ¡+² ž¶ ÌØ¥ÑØ¢ ¶ 𨢧‚fšØ¢š¶ «‚f¹#¶ þŸË¡¶ þùË¡ ¶ ¢¶ þš¹þ‘ÖÇÄÓÖÓ¹ÖÓ­  Ì弄¼‹“¡Ö ÓÖÆ¼¥ƒ¼œ Ó弄¼‹¡Þ弄¼‹¡ÖƼ ÜÝιàïáÖÎ ¹âï+á&ÖÓÌ弄¼‹“¡ÖYÓÖÆ¼¥ƒ¼œ Óï,áðÖÓïáÖÓ¹Ö ÓŸÌÊ¡Æ ž¹Æ žÊ ÌʢߚʢŸšÊ¡Ê¢šÊ¢šÊ¢šÊ ÌÖÆ¼³œ ÆÆ ÎþÜtßÊ šÞŸË¡7ÞùÈ¡(Þ§‚dá Ömӟ̹ާ‚eá ÖǕӟÌÊ ¢Þš¹ ÖÇÇÓŸÌï˫쓡ÖÓì¡öïáÖÓ¹Ö[Óï áÖÓ¹ÖTÓÖÆ¼ Æ Æ ÎÊ ŸË¡ Ê ùáÖÇÅÓÖÊ Î¡"ÊʂȡßÌÊ¢šÊ¢ ʆšÊ¢ ÊšßÌÊûÌÊ¢Ê šÊúŸË¡ôÖÊúÆÆÓ Êü¡;ÖÊÊ‘ÆÎ¡&ÖÊÆÎ¡ÊÊþ†ÊÊþŽþtÑË‚Ì ¹ÖÇKÓ¹ÖÇFÓ¹@ÖÊÊ‘ÆÎ¡-ÖÊÆÎ¡ÖÊ ÊÆÎ¡ÊÌ ¹ÖÇGÓ¹ÖÇHÓ¹ÖÇIÓÊ Çÿ?Å¡ ÖÇJÓÌ Ê È¡ ÖÇ'ÓÌ ÊÊ šßÌ ÞÌߟáò¹äï-áîÖÓéÌ é ɡ邫¥ƒ é¤ÌÊŸšÊ¢š¹ÖÇÓÌ ÌÖÆ¼…Çœ ÆÎÊ ÊÅ‚Ì Æ žÊ ÌÊ¢¥ƒ 餸šÊ¢ßšÊÊ šÊ¢šþwÊ «ï áÖÓ¹Ö_Ó¹æï*áìÖÓï áÖÓ¹ÖUÓÖÆ¼ ÆÆ Îߟˡ%ßùÅ¡ ÖÇÈӟ̹ߧ‚dÃß§‚eÃ�¡ÖrÓŸÌÆ žÊ ÌʢߚʢšßŸË¡4Ö߯ÆÓ ÊÉ¡ÖÇTÓÊÊ‚†šÇÿÊøÉ¡ ÊÇÿšÖǩӹʚ¹èï.áWÖÓÆ žÊ ÌÊ¢šÊ¢Ÿšï áÖÓÖÆ¼ ÆÆ ιÖVÓŸÌÊ ¢ߚߟˡßùþ!÷áÖÇ6ÓÊ >ßø‚š¹êï3á|ÖÓïË¡ÖÇ´Ó¹lÖÓÖÆ¼³œ ÆÆÓß§‚eá8ÊÈÊÇÿÅ�¡ ÖÇÓÌÆ žÊ §‚_¨ Ê ÌʢʚÊÊ‚†š¹ÖÇ€ÓïáÖÓ¹Ö\ÓÜÊ šïƼ‹“¡ÖJÓÖÆ¼ Ó¹ÜŸšÜøŸÃ¡Ýš¹ÝÜøøš­139;=?ÂP$a/ Êï"áY¥ƒ é¤ÌÚüÌÌØŸþ{œËÙ“„¡Øù§Ë¡Øú̹ ÌÖǦÓ¹öÙ“¡!ÆžØÌÛšÛ¢§šÛ¢ŸšÛ¢ÚüšÚ¢ØšÖÓ¹ÖÓï²¼ œ‹“¡ÖBÓÖ²¼ œ Óï˫쓡ÖÓì¡ôïáÖÓ¹ÖcÓ­¢� ¬ ïË¡ÖÓÖ²¼œ ÓïáôÆ žØÌÛ¥ÑÛ¢ ŸšÛ¢ŸšÛ¢šÖÓï)Ãð Ä¡ÖÓ¹ÖÓÖ²¼œ ÆÆÓÖØÓØ¢ þ¡ٚآƨïá%ÖÓï²¼œ‹“¡Ö?ÓÖ²¼œ Ó¹ÖbÓ¹ö­� ¬ ïË¡Ö"ÓÖ²¼œ ÓïáòÆ žÚÌÝ¥ÑÝ¢ ŸšÝ¢šÖÓï)Ãð Ä¡ÖÓ¹ÖÇ—ÓÖ²¼œ ÆÆÎÖÚÓÚ¢ Ûš§‚fÌÙŸË¡+ÙÚ¯¡Ùþ¢ÚþšÙ§‚fˡآÙÿš¹Ùÿ«‚fÙÌÙÿ̹öïá%ÖÓï²¼œ‹“¡ÖKÓÖ²þ>r¼œ Ó¹ÖvÓ¹ô§‚fŸË¡ ÖÇÒÓŸ«‚f­Éx ê ŸÌïá/Æ žÚÌÝ¢šÝ¥ÑÝ¢ٚݢ ŸšÝ¢§‚nšÖÚÓÚÌÖÓ¹Ö#Óï²¼œ¥ƒ¼œ‹“¡ÖLÓÖ²¼œ¥ƒ¼œ Óï˫쓡ÖÓì¡öïáÖÓ¹Ö1ÓÙÌÖ²¼œ¥ƒ¼œ ÆÆÎÙŸË¡=ÙÌÝ¢ ۚݢêšÖÜÓÝÿÌÝÿŸÃ¡ ÛŸË¡Ûþb7ùáÝ¢¥ƒ é¤úš¥ƒ é¤¢Øš¹ôïá%ÖÓï²¼œ‹“¡ÖMÓÖ²¼œ Ó¹Ö|ÓïË弄¼‹“„¡ò§‚fŸË¡ ÖÇÓÓŸ«‚f­1”5 @ŸÌ êÌïÆ¼œ‹“¡ÖÓÖ²¼Æ¼œœ Óïáì¶¡ÖwÓÖÓï³@‹“¡ÖOÓÖ²¼!œ Óï³@‹¡ðïáÌ ÖÓ¹Ì ŸÌÌïáKÆ þ÷üžÊ ÌÊ Ã¡Ê¢š¹Ê¢šÊ¥ÑÊ¢ ŸšÊ¢ßšÊ¢§‚nšÖÊ ÓÊ ÌÊ‚ÌÖÓ¹ÖÓï²¼œ‹“¡ÖPÓÖ²¼.œ Óï˫쓡ÖÓì¡öÌ ŸÌ ïáNÖÓïá@Ö Æ ÓÖÓÊ þÌ Ê ŸË¡Ê Ã¡Ê ùáÖyÓ¹ Ê ùÈ¡Ê øÌ ÖÊÊ �Ó¹ÖÓ¹Ö/ÓŸÌ êÌßÌÞŸË¡"ÞÌ ÞÌÊÊ •Ìʢʚʢ Ê þ¼šÊÿ̹ôÊ ŸË¡ Ê ¢Ê šßÌ ï(²¼œ‹“¡ÖQÓÖ(²¼œ Óïá)ÖÓï²¼³@œ‹“¡ÖRÓÖ²¼!œ Ó¹òïá+ÖÓïÆ¼²¼œ‹“¡ÖCÓÖÆ¼²¼œ Ó¹Ö+ÓÝ¢ꚟÌÊ ŸË¡<Ê ÌÊÿÌʢޚʣáÊþŸË¡ÊþùÅ¡ Ê¢êšÖÊþøÓÊ ÌßÌ ¹îÜÞš¹ÜŸš­NŒ þv,†¶¡ ¶«¶«‚r¶ «¶ «¶ «‚n¶«‚s­.ØÌ¥„¿¤ø‹¡`Ö¥„ó®§‚A‚Ï ÖÛ:ÏÖÛÚ£ Ï ÖÛÚ£ Ï ÖÛ Ï®Ú£ ®È¡Ü̹ÙÐÌÖ¥„ó®¦. ÏÙÛáöÖ¥„ó®ÚÏÖÛÏ¥„¿¤ø‹¡`Ö¥…u®§‚A‚Ï ÖÛ:ÏÖÛÚ£ Ï ÖÛÚ£ Ï ÖÛ Ï®Ú£ ®È¡Ü̹ÙÐÌÖ¥…u®¦. ÏÙþBÕÛáôÖ¥…u®ÚÏÖÛÏ­)— èØ0áR§‚3¡ÖÇNÓïÌï³€‹¡ÖÓ¹ ÖÇ!ÓÌÌí̧‚q«§‚rÌ«‚r§‚8¡ÖÇ Ó«‚?«‚Y¹ÌêÌ «ê«‚Q«‚5ïáòÖ¥ƒ 餸ÆÓÊŸË¡FÊ£áÊ£ØÄÊ£ Ä̹ʣáÊ£Ø Ã„Ê£ Ä̹ÌÊ“¡ÖÇ Ó¹ÌÊ“¡öØáÆž¹Æþb^žÊÌÊ¥ÑÊ¢ ŸšÊ¢êšÊ¢šÊ¢šÊ¢ šÊ¢§‚nšÊ¢§‚ršÊ¢íš§‚3Ê£ ÄÊ£ Ä¡¥ƒ÷¤¢ÊÑ¥‚tÊÑÊ¡#§‚qÅ¡ÖÇÓ¹§‚q‚«‚q¥ƒ÷í¤¢¥Ñ§‚rǕáÖÇÓ¹§‚r‚«‚rØáÊ¢š¹Ê¢šÖÊÓ¹}ÊÿÌÊŸË¡DÊÌÊþŸË¡2Ê£¹Ê£ Êþø‚̹ʣ ‚̹ ¬¹ ÊþêšʫÊÿ̹ôÊ£ íË¡&Ê£ Ë¡ÖÇUӹʡ Ê£ ««‚r¹ÖÇ"ÓÖÓ¹ ÖÓ§‚i̧‚sÌÊ£ «‚s§‚nÌ §‚nÉ¡ §‚n‚«‚n¹ÖÇûÓéÌ é É¡7é‚«¥ƒ é¤ÌÊ¡ÊÊÿš¹ÊŸšÊ¢ŸšÊ¢ŸšÊ¢šÊ¢š¹ÖÇúÓÊÌØáÖ ÆÊÎÊ“¡Ê¢Êš¹ìÖ  ÆÊÎÊ“¡Ê¢ÊšïáîÖÓïá|Êþéî¡ÖzÓÖ ÆÓÊþÌÊ¢ ʚʟˡÊù‹“¡ ÖxÓÊ¢ ŸšÊþŸË¡ÊþøÌ¹ÌʢʣʂšÊÿÌʟˡʢʣ Ê‚šÊÿ̹ðÖÊÓÖÓ¹ÖÓÖ²¼œ Ó¹ Ê“¡Ö{ÓïáÖÓ¹ÖdÓïÃ¥¦FORWARD Я„¡BÊ¡ÖǡӹʢšÖÓïáÖÓ¹ÖpÓï²¼‹“¡ÖDÓÖ²¼ ÓÖιàïÃþ—¥¦ASSEMBLEЯ„§‚6“„¡èÊ¡ÖÇ1ÓÖÓïáÖÓ¹ÖSÓï²¼‹“¡ÖÇ ÓÖ²¼ Ó«‚+Æž ¥ÇžÇÿ«‚M«ÊŸË¡VÊÌÊ¢š®®È¡Ê̹ÊÐÌÖÊÊ•Â¾Ó ÊÊáêÊþŸË¡ ÖÊþøÓ ¹ÖÓ ÖÇÿÓ ÖÇþÓ Ö§‚nÓ §‚8“¡«‚8¥ƒ÷í¤¢§‚ZšÖÓÇÿë•§‚?É¡ÖÇBÓ¹§‚?ë‚«‚?¥ƒa§‚s¤þ®{§‚?•šÆž!ÖÊÎÖιâïÃ¥¦EXTERNALЯ„§‚6“„¡äÖÓïáÖÓ¹ÖǯÓï²¼‹“¡ÖÇÏÓÖ²¼ Ó«‚*Æž ¥ÇžÇÿ«‚M«ÊŸË¡<ÊÌÊ¢š®®È¡Ê̹ÊÐÌÖÊÊ•Â¾Ó ÊÊáæÖÇýÓ Ö§‚nÓ §‚8“¡«‚8¥ƒ÷í¤¢§‚ZšÖÓÇÿë•§‚?É¡ÖÇÑÓ¹§‚?ë‚«‚?¥ƒa§‚s¤§‚?•šÊ¡ÖþQ˜Ó Æž!ÖÊÎÖιPÊÌÊ¢šÊ¢ šÖÊÎ¥‚tÊÑ¥‚x¦ declarationsª Æž Ì Ȩ̂‚oÌ ¥‚o ž§‚oƨ ¸­VÓVæ×â2±¸\ÆÚÑÙøŸÃ¡Ì¹ZÙøÆ¯¡Ì¹LÙøÌ Ì Ê Ã¡!Ê ÿÌߟáÌ ¹߯¯¡Ì ¹ßÌ ¹öÊ á̹ÌÊ ¢ßÿšß¢ÙøšÙßš­GtÆÙÑþ„ȩ„ÅÌޟˡޢƯ¡¹ ¹ÞøÌ¹öÌ­ 4ÆÙÑÌ¥ƒ é¤úÌÞŸË¡ÞÆ¯¡¹ ¹Þÿ̹öÌ­ 6ØøŸË¡ŸÌØøÌØÙ𨸸ÌØøÚšØøÌٟáö­,ÆØÑÆ žÝÌÞÆÑÞ¢šÞ¢ §‚ašÞ¢§‚nšÞ¢êšÖ§‚aøÓÞ¢¥ƒ é¤úš¥ƒ é¤¢ÝšÖÝÓ­RÖ¦INPUT þ+éÐÎÖ¦INPUT ÐΓ„¡Ö¦INPUT ÐÎÖ¦OUTPUT ÐÎÖ¦OUTPUT ÐΓ„¡Ö¦OUTPUT ÐÎÖ¥„ÅΧ„ÅÌØŸË¡Ö¥ƒ 餢آΓ¡ÖÇ0ÓØøÌ¹öÖ¥„Åέ+ž§‚2§‚0„¡«‚2ÖÆ¼ Ó¹òÌïá§‚3§‚nÄ¡ÖÇLÓÖÓÖÎ ïáÖÓÖÎ ïáÖÓÖÎ ïá§‚3§‚nÄ¡ÖÇMÓÖÓÖÎþâT§‚nç‚3“„¡ÖÎï³€‹¡ ïÌÖÓÖÝιöïË¡弄¼‹Ü„“¡ÖÓÖÆ¼ ÓïÇ¥ƒ¼œ‹¡ô­¯Q ÒzÒ@zâ V D xü L<înˆV¼¬2f0þþ`§‚2§‚0„¡ ÖÆ¼ Í¹.ÖÆ¼ ÍÖÆ¼³ œÇ… Í§‚oŸÃ¡öÖÎ ­0NØÅÌÚÙÇØÇ€Ž�‚šÛ¡ ÚÚøÇÿ••š­(ÙÚá̹îÙŸÃÚŸÃ�¡Ì¹ðÙùÚùË¡'Ùùá ÖÙúÚÎ̹Úùá ÖÙÚúÎ̹̹òÙù¹ö̹ôÖÙúÚúÎ̹ôÙ§‚`ÃÚ§‚`Ã�̹xÖÙúÚúÎ̹lÖÙÎÖÚ΄“þס̹AÖÙÎÖÚ΄¡Ì¹/ÙúŸÃÚúŸÃ�¡Ì¹ÖÙúÆÆÎ ÖÚúÆÆÎ ÞÃÝÄÜÛÄ̹¬¹Ї}pf”–­ ôŸÌݚ弄¼‹“¡Ö2ÎÖÆ¼¥ƒ¼œ Î弄¼‹¡ôï%á?§á§‚c̹(Æ žÞ§‚_¨ Þ¢§šÞ¢ŸšÆ Ç‚žÊ §¨€‚Ê «Ý¥¨ÖιöÌ ï(Ãð`‹„¡ðáÌ ¹þprÌ ÖÎïádÖ ÆÎßÌ Ê þÌÝÊ ¢¨Ê Ë¡AÞ§‚eá Ê Ã¡ÝÝø‘š¹-Þ§‚dá"Ê áÆ žÊ šÊ ¢Ýø¢¼’½ÝÊ š¹ÖiÎÖιTï"áÊ á§‘«§‚eÌÝ¥¨Öι5ï$á"Ê á §¢§¢¼’½§‚dÌÝ¥¨ÖιÖjÎÖÆ¼ ÎïÆ¼‹“¡Ö>ÎÖÆ¼ ÎÜÞš­  v¥ƒ 餸Ìڟá ¥ƒþ#g 館š¹8ÚÆØžÌÛáÖeÎÙüŸÃ¡Ì¹ ÙüÆØžÌ¹öÛá٢ؚ¹Ù¢ ؚآ ŸšØ¢Ÿš­<dë‚§‚MÅ¡ ÖÇýΫ‚7«èëÂØ¿ë‚«­( ë„¡ÖÎ ë‚§‚MÅ¡ ÖÇΫ‚7«ÖØÆÆÎ§‚9§‚-áèëÂÚ¿èë‚ÂÙ¿¹ èëÂÙ¿èë‚ÂÚ¿ë‚«­X ØÌÛùá ÙÛüšÚÛûš¹"ٚا‚cáÚÇÿþ=÷š¹ØûŸË¡ÚØû£ š¹Úš­> ««‚4«‚Ÿ¥€—ÂÇÿž §‚1¡5Ö¥€—¥‚C¥ˆ9Γ¡#Ö¥ˆ9ϧ„¼«§�«�¥€—¥ªÿ§‚/«‚4«‚1¹Ö¥€—¥‚B¥‰wΓ¡ÖÇ/ÎÖ¥€—Î¥€—¾Çÿ•Å¡ÖÇέ†Ù¿ۢ|ÚøÂ¾§‚Wá̹dÛ¢|ÚøÂ¾¥„½¼‹“¡/ÙÂÙ¾‚¿ÙÙ¾ÂÛ¢|ÚøÂ¾¿ÚøÇÿÉ¡ÚÚø‚š¹ÖÛÏÚþÒáš¹öÛ¢|ÚøÂ¾«�ÚøÇÿÉ¡ÚÚø‚š¹ÖÛÏښ̭g †êØ‚Çÿ?Å¡ ÖÇÚΫ¹êØ‚«­"§‚A‚«‚AÖÎÖÎîP ¥€—îž ‚«§‚5¡ê«‚Q¹ë«‚Q­4ÌÌ Ì Ì Ì Ç'ÌÇ'ÌîÌî‚«¥€—î¾0É¥€—î¾9Å�¡öî•Ì ¥€—î¾.áS¥€—.Ë¡GÌî‚«îÌ¥€—î¾³ÿ‹þnZ“¡ÖÇÉÎ¥€—î¾³ÿ‹¡î‚«¹ôî•Ì ¥€—î¾³ ‹¡\Ìî‚«¥€—î¾-á î‚«‘Ì ¹¥€—î¾+áî‚«îÌ¥€—î¾³ÿ‹¡î‚«¹òî•Ì Ê ÝÉ¡ÖÇÎØábÌß®Ê ®È¡JÊ̹ÛÐÌÜÇÿ †Ã¥€—Û¾0•Çÿ ŽÅ„ÜÇÿ †Å�¡ Ê ÌÖÇËÎ¹Ü �¥€—Û¾0•‚ÌÛÊáð"«þ%ô« Ü«¹èÆнß®Ê ®È¡%Ê̹ÛÐÌÆÆ¼ Š�¥€—Û¾0•Šƒ½ÛÊáîÊ ®Þ®Ä¡+ÊÌ¹Û•ÌÆÆ¼¥€—Û¾0•ÛÞ•‚ž$‰‡ƒ½ÛÊáìÌ Ý®Ê ®È¡Ê̹ÛÐÌÊ �¥€—Û¾‚0•Ì ÛÊáêÊ ‘áÆÆ¼Ê ž$‡½¹ ÆÆ¼Ê ž$�½$«« ²ž¶š¶¢Æ¼½¶«î•«­f Ñ8ëFjþªÇ$¡0—¾È¥€—î¾ Ã¥€—î¾ Ã�„¡î‚«¹ô—¾È¡¹Öιò« /«¥€—î¾¹îÖÎ#¹ìÖÎ$¹ì¥¥€—¥�¥¥ ¥ž ¹ìÖιð¹ì¥€—*á î‚«Öι𹫹쫹쫹쥀—.á î‚«#«¹«¹ì¥€—=á î‚««¹«¹ì«¹ì«¹ì«¹ì«¹ì'«« ¹ì(«« ¹ì(«« ¹ì'«« ¹ì)«« ¥€—þ¿†î‚¾¹ « î‚«¹ « î‚«¹ ¬=>¹¹ì)« « ¹ì)«¥€—=á « î‚«¹ « ¹ì¬'{¹ìò×…Ø{×w "$&(*,.02Ô»‰ZT2À=?ACEGIKMOQSUWY[]_acegikmoñlðürt}�ƒ…‡‰‹��‘“•—™›�Ÿ¡£¥§©«­¯Ÿþ.}ï/áÖÇ)Îî‚«§‚[„¡¹ð­Ð  ,ØÉÌÛ¡ Ø‚Çÿ‚ÌÙØÇ†šÚØÇŽšÛ¡ÙÙøÇ€‚š­2ÌÙŸË¡Ùùá ÙüÙû§‚cÄÌ­"ž§‚JÉ¡ž«‚J§‚4§‚P„“�¥„¿¤ø‹„¡öÖ¥…÷®§‚AÏ ÖÚíÏ ÖÚ§‚sÏ ÖÚ§‚QÏ §‚5¡ Ö¥…÷® Ϲ֥…÷®§‚=Ï ÖÚ Ï¥€—¾lÅ¡5Öþsꥅ÷®Ö¥€—ÆlÏÆÏÖÚÏÖ¥…÷®Ö¥€—Æm¥€—¾l•ÏÆÏ¹ Ö¥…÷®¥€—ϧ� áÖ¥…÷Ϲ֥…÷ϧ‚4¡ò¥„¿¤ø‹¡Ö¥…÷¦ERRORÎ%¥€—¾ ¥€—ž ÌÙ¥€—¾É¡E¥€—Ö¥€—ÆÙ‚¥€—¾Ù•ÏÆªÿ®§‚Ÿ®È¡"Û̹ØÐÌ¥‚ Ø•¤¥‚ Ø•¤øÙ•šØÚáô¥„¿¤ø‹¡qÖ¥†y®¦Error at line ÏÖÚ§‚AÏ ÖÚ¦þi in ÏÖÚ¥‚xÏÖÚ¦ of ÏÖÚ¥‚tÏÖÚ:ÏÖÚÏÖ¥†y® ÏÖÚ¥€—ÏÖÚÏÖ¥†y¦Î%¥„¿¤ø‹¡qÖ¥…u®¦Error at line ÏÖÚ§‚AÏ ÖÚ¦ in ÏÖÚ¥‚xÏÖÚ¦ of ÏÖÚ¥‚tÏÖÚ:ÏÖÚÏÖ¥…u® ÏÖÚ¥€—ÏÖÚÏÖ¥…u¦Î%¥„¿¤ø‹¡qÖ¥„ó®¦Error at line ÏÖÚ§‚AÏ ÖÚ¦ in þEŸÏÖÚ¥‚xÏÖÚ¦ of ÏÖÚ¥‚tÏÖÚ:ÏÖÚÏÖ¥„ó® ÏÖÚ¥€—ÏÖÚÏÖ¥„ó¦Î%­™ùƒ È鮮ġIÝ̹ە̥ƒ Û¤øÌÚŸË¡,ÚÆ¥žáڣ؋¡¹k¹§‚.¡ÖÇÁιŸÌ¹ŸÌÛÜáö§‚.¡JÖhÎØ‹¡§‚m̹9Ø‹¡§‚k̹,Ø‹¡§‚j̹؋¡§‚l̹؋¡§‚i̹§‚hÌÙÚšÛ«þð^­œ ²؟áÙŸš¹ ØÙ¥žË¡ÙŸš­ ïÆ¼‹“¡Öιö­ ÌÖÙΡÙÿÌ­Æ?©Æ ¿Ø¾Å¡ô ØÂ¾Ãؾń¡/ØÌÖÆ¦ ÏÖÆÖØÆ€„ؾ•ÏÆ€„ÇÿÏÆªÿ ØØ¾Â¾Ã¡ØØ¾Â ¿ÖØÆÏÌÙÅ¡eØÌÖÆÖØÆ€„Ù•ÏÆ€„ÇÿÏÖÆÖ¦ Æ€„þ6ÀÙ•Ž•ÏÆ€„ÇÿÏÖÆÖØÆ€„Ù‚ؾٕÏÆ€„ÇÿÏÆªÿÖØÆÏ̹ö­n ÚÌëÌǧ‚Y•ÌÙÚÅ¡ÚÌèÛÂ¥‡9§‚YÂÙžÛق̧‚YÙ‚«‚Y§‚YÇÃØ�¡,¥‚¼ ¯§‚,„¡Ö¥†ûÏ«‚Y§‚Z‚«‚Z¥‡9ÂÇž ÚÙ•ÌÚáö­n|ÖÆ†ûƇ9ÇÏÖÆ†û¦WORKCODEÏÖÆˆ9ƈwÇÏÖÆˆ9¦INCLFIþ�*LEÏÖÆ‰wƉµÇÏÖÆ‰w¦WORKSYMÏÖÆ„óÆ…1ÏÖÆ„ó¦OVTPVTÏÖÆ…uÆ…³ÏÖÆ…u¦ANALFILEÏÖÆ…÷Ɔ5ÏÖÆ…÷¦LPÏÖÆ†yƆ·ÏÖÆ†y¦ERRFILEÏ«‚:Ö¥„ó¦OUTPUTÏÖ¥„óÏÖÍÖÍÖ¥ƒ¼¥ƒ¼œ³ … Î§‚3¡ ïË¡ÖÇOι ïË¡ÖΧ‚A‚«‚AÖÎ¥‚¼ ·¡ÖÍÖͧ‚:¡ÖÎÖþL`ÍÖ¥†ûÏÖÆ†ûÏÖÆˆ9ÏÖÆ‰wÏÖÆ„óÏÖÆ…uÏÖÆ…÷ÏÖÆ†yÏ­G6 ´<~ƒ1ƒ0‚2 R‚/„,„+ƒ-ƒ*ƒ)‚. Мþ:`�3èH H Ô ` ¤�(�'�&6�%¢FN'þþª§‚9§‚-á ٕؕ€ŽÌÌØÙ‚É¡M̮ٮȡÞ̹ÜÐÌÛÛ‚ÌÜÝáö®Ø®È¡#Þ̹ÜÐÌÚÛ‚ÌÛÇÿ†‚É¡ÛÛ‚ÌÜÝáô¹0‘̮ٮȡ#Þ̹ÜÐÌÚÛ•ÌÛÇÿ†‚É¡ÛÛ‚ÌÜÝáòÖÚέ$Xv ¬ þ»?Ì Ì ñŸË¡ óÃñùÅ�¡ÖÎÖñÓÌ Æ¥ ¨ÖÓÖÆ¼ Îòá ñ§‚cÃÖñÓ�Ì ñŸË¡ñùÈ¡ÖÎ ¹ÖÎÜŸËñŸË„¡ôñ§‚eáÖ§‚dÜÓ¡ Ö Î§‚d« Ì Ê ¡\Üÿ¡ ñ§‚cáÌþÁ¸ ¹LÜúŸË¡CÖÜúÆÆ Ó Ê Ê•‚Ì Ê ñ§‚cË„¡%ÖPÎÊ ñ£Ë¡ÖÇ�Ó§‚6ÊË„¡ÖÇ@ÓÜ« ¹Ü« Ê “¡ÖÜñÓÌ Ê ¡öÜù¹o§‚D„“¡ÖÜüÎÖÜûÎÖÎÖÆÎ¹gÖ ÜøÎÖÆÎ¹ZÖÆÎ¹SÊ ¡"Üÿ¡ñ§‚cáÖ)ιÖ*ܣιÖQÊ Î¹Ö(ÜøÎ¹%Ö(ÜøÎ¹ÖÇ’Ó¹¬¹LxP_M!¹ÖÇîÓ­  ŠþþTåÖÆ¼ ÎÖñÓòÃñ§‚cÄ�¡FòáÖι:òá5ñ§‚cá+§‚pÌܚܢšÜ¢•Âó¿§‚p« ¥ žñ§‚_¨ ñ¢šÖιñŸË¡ÖÇçÓ§‚_« ­zþþ±ßÖ²¼"œ ÎÖΟÌÌÌñŸË¡)ñÌÝùáÝúŸË¡ÝúÌÞøÌÞùáÞû̹ÖÇÌÓïáòÖÓÖ²¼"œ ÆÆÓÚ‚ÌٟáÖÇžÓ¹fÙùË¡ÖÇ¢Ó¹XÙúŸË¡RÖØÓا‚dÃ�¡ÖÇŸÓ¹=ÖÙúþØÓ¡-ÙûÌØŸË¡ØÌÝüÜá ÝøÌÝú̹¹Ýû̹öÙøÌŸÌ¹ÖÇÍÓ¹ôÖÛÎÖέ ¢A ôþþ¨ß§‚3¡ÖÇPÓïáÖ` ÆÓÖÓ¹ï!á §‚gÌÖÓ¹ŸÌ؟ˡأ áÖØ£ ÎÖØ£ ιÖÇÜÓ¹ÖÇÝÓÖέfþþ–zÌêÌÖÇÿ†‚ÓÖÎÖ8ØÎÖVÎÖ2ØÎÖ²¼"œ ÎÙñ£‚ÌÙÇÿÉ¡ÖÙιÖÇÿÎÖOÎï˫쓡ÖÓì¡öÖ2ØÎÙÇÿÉ¡ ØÙ†‚‚«¹ÇÿÌê§Å¡ê«Ø«¥ žñ§‚_¨ ñ¢Ùš­‚ ¤þþf{êÌÖÇÿ†‚ÓÖ²¼œ ÎñÌÖ2ØÎïáÖÓ¹ÖǶÓÖ²¼œ ÎÖÎ ñŸË¡ ñ§‚eË¡ÖÇèÓïáÖÓ¹ÖÇ·ÓÖ²¼ œ ÎÖÎ ñŸË¡ ñ§‚eË¡ÖÇéÓÖOÎÖ2ØÎÙ£ÇÿÉ¡ ØÙ£†‚‚«ê§Å¡ê«Ø«Ù« ­Àþþ9lïáÖ ÆÓÖÓØþŸË¡ÖØþø�Χ‚e« ­,þþ:ÞÖ²¼ œ ÎÖÎñŸË¡ ñùË¡ÖÇÛÓ¶¹ Öι1Öι+¬¹$  "/ÖOέlþþžÖ²¼"œ ÎÖÎñŸË¡ ñùË¡ÖÇßÓ¶¹Cïá#ÖÓÖ²¼ œ ÎÖÎ ñ§‚eË¡ÖÇàÓ¹ÖÇáÓÖO ιÖOιÖOι¬ #¹K­‚þþëÖ²¼"œ ÎÖÎñŸË¡ ñùË¡ÖÇÞÓïË¡ÖǪÓ¹ÖÓÖ²¼ œ ÎÖOέNþþ=ƥѫ‚.Ø¡¥¦INPUT Ðѹ¥¦OUTPUT ÐÑÖ  ÆÓ«‚.¥ÆÑݟáØ¡ÖÇÎÓ¹ÖÇ3Ó¹cÝþ§‚aˡءÖÇÐÓ¹ÖÇ4Ó¹HÝÌÞ£á Þ£ á Ö%Þ£ ιÖ2§‚nÞ£ •Þ£ ιޣ á Ö'Þ£ ιÖ6§‚nÞ£ •Þ£ έÄþþ­¶¡3Ö²¼ œ ÎÖÎñŸË¡ñùË¡ÖÇìÓ¹ ñ§‚aË¡ÖÇÓ¹ÖÎÖOέJþþØñŸË¡gÖ§‚eñÓ¡ÖO ιVÖ§‚dñÓ¡ÖOιEÖ§‚cñÓ¡ÖOι4ÖñÓ¡'Öñ£ÎÖOζˡÖdzÓ¹ ïáÖDzÓ¹ÖÇâÓ­t!þþ*ïá1ÖVÎÖ6ØÎÖÓÖ²¼"œ Îó‹¡ÖÇÀÓ¹ÖÎÖÎ!¹ö­8@"þlSÖVÎÖ²¼"œ ÎÆ¥ ¨ÖÎñŸÃ¡Ì¹ñ§‚aá̹ñùá̹Ìعöïá:ÖÆÎ Ö.ÙÎÖÓÖ²¼"þ¸Ýœ Îó‹¡ÖÇQÓ¹ÖÎÖÎ!ÖÙÎ"ê•«¹ÖǮӹôÖÎÜ‹¡ÖÇRÓïáÖÆÎ Ö.ÙÎÖRÎÖÎ!ÖÙÎ"ê•«¹ÖRÎÖÎ!¹ôÖÆÎ Ö.ÙÎïá[ó¹õ>‚«¹ô>‚« ¹ ¬¹ÖÎÖÓÖ²¼ œ ÎÖÎÖRÎÖñÚúÓ¡Ö(ñøÎ¹ÖǰÓÖ6ÙÎÖOιÖǸÓê•«¹¹¬¹ƒ¿­ X#þþD¶¡öÖÆÎ ÖVÎÖ²¼"œ Îó‹ÌòáÖιÖÓÌñ§‚aáOïá ÌÖOι>Ö.ØÎÖOÎïá/ÖVÎÖ6ØÎÖÓÖ²¼"œ Îó‹¡ÖÇSÓ¹ÖÎÖÎ!¹&Ú¡ÖtÓÖVÎÖÎÖ.ØÎÖOÎÖ6ØÎÖRÎÖÎ!ÖØÎ"Ù¡ÖVÎÖ6ØÎÖOÎê•«¹ ÖVÎÖÎÖOέ ä$þk0ñÌïá+ÖÓÖ²¼&œ ÎñŸË¡ ñ§‚eË¡ÖǹÓÖþ[øÎ ̹ÌÙ§‚dáGØ¡ÖÎïá,ÖÓÖ²¼"œ ÎÖÎ ÖÎñŸË¡ ñ§‚eË¡ÖÇêÓ¹ÖÎÖÎÖOιôÙ§‚eáØ¡ÖÎÖO ιöÙ§‚cáØ¡ÖÎÖOιnÙ§‚báØ¡ÖÎÖO!ιYÖÙÓ¡Ø¡ÖÎÖOιDÖÙÓ¡7¸ÙúŸË¡ÖÙú²²Ó ¶¶•‚¸Ø¡Ö¶ÎÖ¶ÎÖOιÖÇëÓ­ (&þþ~‡ïá#ÖVÎÖ6ØÎÖÓÖ²¼&œ ÎÖÎ%ÖÎ&¹ö­*2'þþ‰sñ§‚dá ÖÆÎ ÖRÎÖ8ØÎÖRÎÖ6ØÎê•«¹ÖRέ4(þ³ ÖVÎÖ²¼&œ ÎÆ¥ ¨ñŸÃ¡Ì¹ñ§‚aá̹ñùþ?Aá̹ÌعöÖÎïá,ÖÆÎ Ö.ÙÎÖÓÖ²¼&œ ÎÖÎ%ÖÎ&ÖÙÎ'ê•«¹ÖÇ Ó¹ôÖÎ%ÖÎÖÆÎ Ö.ÙÎÖÎ(ÖÎ&ÖÙÎ'ê•«¹ôÖÎÖÆÎ Ö.ÙÎïáRó¹õ>‚«¹ô>‚« ¹ ¬¹ñú« ñŸË¡ñùÈñøÅ„¡ÖΫ Ö²¼ œ ÎÖ6ÙÎÖOιÖÇ2Óê•«¹¹¬¹Ù}¡­ ,)þþ\ζ¡öÖÆÎ ÖVÎÖ²¼&œ ÎÌñ§‚aá5ÖÎïá ÌÖOι!Ö.ØÎïáÖÓÖ²¼&œ ÎÖÎ%ÖÎ&¹ÖÎ%ÖÎÖ.ØÎÖÎ(ÖÎ&ÖØÎ'Ù¡ÖVÎÖ6ØÎÖOÎê•«¹ ÖVÎÖÎÖOέ ¢*þþ Ÿ¶¡=Ö²¼ œ ÎÖÎñŸË¡%ñùË¡Ö}Ó¹¶³@‹ñ§‚aË„¡ÖÇ(Ó¹Öζ¹$ÖO Χ‚b« ¹;ÖO Χ‚b« ¹/ÖOΧ‚c« ¹#¬¹+! -­š+þþD Ö²¼ œ ÎÖÎñŸË¡ ñùË¡ÖÇÙÓ¶¹ÖιÖιÖι¬!¹  ÖOέZ,þþ�DÖ²¼"œ Î² ¥ ¨ÖÎÖ8¶ÎïáÖÓ¹ÖÇ=ÓÖ²¼"œ ÎÆ¥ ¨ÖÎ ¶ ŸË¡v¶ ùË¡ÖÇ9Ó¹f¶ ü¡ÖÇ<Ó¹XÖÚ¶ úÓ“¡ÖÇ8ÓÖ¶ úÆÆÓ ØÙ•¸§‚D„“¡ ÖÙÎÖØÎÖÎÙË¡ÖÙ€ÎÙÅ¡ÖιÖÎÖ8¶Î­Ì.þþ&�¸Ö²¼"œ Î²¥ ¨ÖÎÖ8¶Î¶ŸË¡B¶ùË¡ÖÇÓ¹2¶ü“¡ÖÇ;Ó¹#¶ý˸Ö¶úÆÆÓ ÖØÙ•€ÎÖ8¶Î­v/þþ†¾Ø¡-Ö6¶ÎÖBΧ‚D„“¡ÖÎÖ¶ÎÖÎÖ$¶ ûøÎ¹¶¡Ö@¶þ¶ýιÖBέP0þ­÷ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ¶þy,&áÌÖÎ.ïáÖÓ¹ÖÇ>ÓÖÎ/¹ÌÖÎ/ïáÖÓ¹ÖÇ?ÓÖÎ.ߟËÊ ŸË„¡ßûÊ ûË¡ÖÇ:ÓÖÎÖÎÖ8ÚÎÖÊÎ Ö6ÚÎÖ6ÛÎÖIÎÖ!ÊÎÙ¡Ö6ÜιÖ6ÞÎÖ6ÚÎÖPÎÖ.ÚÎÖÙ“Î0Ù¡Ö6ÞιÖ6ÜÎÖ6ÚÎÖÙÎ0Ù¡Ö#ÎØ¡Ö;ιÖ?ιءÖ:ιÖ>ÎÖÎÖ9ÊÎÖÊÎ ê�•«­"-þþlñŸË¡bñùË¡ÖsÓ¹Vñ§‚dáÖÇ5Ó¹Gñúç‚D„“„¡%¶áÖÎÖÎÖñü•ι ÖÎÖñüÎÖÎÖζáÖιÖέp1þþ®,¥ƒ ¶¤ü¸¶ŸË¶“„¡¶ù§á¸¹¶ú¸¹ö­&:<þþöeï"Ë¡ÖÓ¹òéÌ¥ƒ Ú¤ùˡڕ̹öÌÖÎ<Ù¡Ö9Øûι]ÌÚÅÙ“„¡Û‚ÌÚ•ÌÖÎ<¹ôÙ“¡ÖǧÓ¹7ØøÃ¡¥ƒ Ú¤¢¥ƒ Ú¤û‚šØ¥ƒ Ú¤ûšÖØø‚�ÎÖ§‚nÛ•ÎÖÎÖÓ­bŠ  ;þþjüÖ²¼Çœ ÎÖÆÎ ÖÙÎ ï áÖÓ¹Ö4Ó§‚=‚«‚=Ö²¼Ç œ Î9§‚=•«‚=ï á2ÖÆÎ Ö9ØÎÖÙÎ ÖÓ§‚=‚«‚=Ö²¼ Î9§‚=•«‚=ÖØÎ ¹ÖÙÎ ­Š>þÁCÖ²¼Çœ ÎÖÎ ÖÆÎ Ö9ßÎñÌÙŸË¡ÙùËÙ§‚dÃ�¡ ÖÇ�ÓŸÌï áÖÓ¹ÖÓŸÌÖÆ Î ŸÌÖ²¼œ ÆÆÓÙŸË¡cÖÙØÓ¡UÝÌŸÌÜŸË¡#ÜÌ Ê úÞÈ¡Ê úÞáÖǜӹ ÜÌÊ øÌ¹öÆžÚÌ Ê ÜšÊ ¢ÞšÊ ¢ëšÛŸÃ¡Ú̹ÛÚš¹ÖÇ“Óï˫쓡ÖÓþìKì¡ôïáÖÓ¹ÖÓ§‚=‚«‚=Ö²¼œ Î9弄¼‹“¡ò§‚=•«‚=ÚŸË¡Ö9Ê Îï˫쓡ÖÓï Ãì�¡ðÖßÎ ÝŸË¡vÝúÌ ÝÌŸÌÜøÌÜÝšÜÌÛÌܟáîÝúÌ Ö,ÎÖÊ Ó ÖÊ Ó ëÌ Ö9Ê ÎÝÌ Ê úÊ Å¡ÖëÊ •Ó Ê ‚Ì ¹ìÖëÊ ù•Ó Ê øÌÊ ÇÿÉ¡Ê ‚Ì ÝŸÃ¡êÖÊ Î ï áÖÓ¹Ö]Ó­ON€vÖwT Ô?þþýÍÖÆÎ ÖØÎ §‚=‚«‚=Ö²¼Çœ Î9弄¼‹“¡öï˫쓡ÖÓì¡ô§‚=•«‚=ï áÖÓÖ²¼ ÎÖØÎ ¹Ö5Ó­QS l@þþÄWÖÆÎ ÖÙÎ Ö²¼@œ ÎÖÆÎ ÖØÎ ïáÖÓ¹ÖǼÓ§‚=‚«‚=Ö²¼ Î9§‚=•«‚=Ö9ÙÎÖØÎ ­\AþÌÌþ³ÌïáÖ ÆÓÖÓ¹ Ö'Ó§‚kÌÖ²¼Bœ ØÎñŸË¡yñùámé É¡`é‚«Ú‚Ì¥ƒ é¤ñúšó᥃ é¤ÌÛ¢šÛ¢ôšÛ¢õš¹-ÖÎÖ8êÎ¥ƒ é¤ÌÛ¢šÛ¢êšÖÓÙ‚Ìê§Å¡ê«¹ÖÇÓ¹ÖÇÓï˫쓡ÖÓì¡öïáÖÓ¹ÖǽÓ§‚=‚«‚=Ö²¼ Î9§‚=•«‚=éÚ•«êÙ•«­ð þCþ׃ž«‚J§‚J§‚K•§‚]†«‚\§‚\É¡«‚\§‚\Å¡«‚\² ž §‚\¹öÇÿ«‚M¥Çž¹ôÇÿ«‚M¥Çž¹ôÇÿ«‚M¥Çž¹ôÇÿ«‚MþD¯¥Çž¹ôÇÿ «‚M¥Çž¹ôÇÿ «‚M¥Çž¹ôÇÿ «‚M¥Çž¹ôÇÿ«‚M¥Çž¹ôÇÿ«‚M¥Ç ž¹ôÇÿ«‚M¥Ç ž¹ôÇÿ«‚M¥Ç ž¹rÇÿ«‚M¥Ç ž¹cÇÿ«‚M¥Ç ž¹TÇÿ«‚M¥Çž¹EÇÿ«‚M¥Çž¹6Çÿ«‚M¥Çž¹'¬¹ ÷êÝÐö©œ�‚uh[NA4ž«‚L§‚\«‚^­7 bDþþ™G§‚oÌØøŸË¡Øø¢ šØù¡§‚8¡ÖÎ Øû«‚rØú«Ø£«‚nØÿ«Øþ«Øü«‚s§‚o¢ ž!§‚o£ «‚o§‚3¡ §‚o£ ŸÃ¡Ÿ«‚o­bþþÍf«‚4§‚Ÿ É¡ §‚Ÿ‚«‚Ÿ¥‚ §‚Ÿ•¤‚ª§‚Ÿ•¤Øš¥‚¥‚¼ Ø—œ  ½ ØÇ,Ç/”‹¡«‚: ž­VþþØŸË¡,ØÌÙ£`‹¡Ù£ áÙ£ á Ù£¡ÖuÎÖÙüÎ ÖÙýÎ ­: þþ²«§‚r•®®Ä¡6Ú̹̥ؕƒaؤøÅ¡Ö§‚?ë‚¥ƒaؤø•Î ¹ Ö¥ƒaؤøÎ ØÙáöÖíÎ Ö§‚r•Î Çÿë•§‚?É¡ÖÇEι ¥ƒ÷í¤§‚?낚ÖΫ‚?«‚8­k ˆ þþζÌî‚«¥€—î¾ Ë¡ö—¾Å¥€—î¾Æ¼‹“�¡Fî•«î‚«—¾Å¡Öιô¥€—)Ã¥€—î¾*Ä¥€—î¾}Ã�¡òî‚¥€—î¾*«Ì­C@q |þþ~ئªÿØÌÖÆØÇÿÏÖÆ¦ ÇÿÏÆªÿØØ¾Â¥€—î‚«—¾Å¥€—î¾ Ã�¥€—î¾}Ã�¥€—)Ã¥€—î¾*Ä�¡öî•«Ö ÎÌ­k� xþþiÌÖ³@ Î¡ Ù¥€—î¾|ڹ̭6!þþtcÌÖ³ÿ  Î¡H¥€—î¾-á,Ö³ÿ Î¡Ù¥‚ö¥€—î¾0•¤ø“š¹Ì¹Ù¥‚ö¥€—î¾0•¤øš¹Ì­j"þþî°¥€—î¾=áFÖÆÎ"ÌÙÖÆÎ!„¡ÖÆÎ"¡Û¡ÜÚ�̹Üڄ̹̹öÙ“¡ ̹ Ü¡+̹-̹¥€—î¾ÌÖ ÎÌ­R l þ©/§‚6“¡îÆ€‚³’’ ½Æ€’³@ ( ½Ö³ Î¡ðÖÆ€‚¼ Î¡ò¥€—î¾¹öÖÆ€’¼ Î¡ Ö¥‚[ÖΠιôÖÆ€’¼ Î¡ Ö¥‚PÖΠιôÖÆ€’¼ Î¡ Ö¥‚EÖΠιô§‚P„“¥„¿¤ø‹„¡Ö¥…÷ÏÖ Î̹ôþÛÖÆ€’¼ Î¡ Ö¥‚DÖΠιôÖ!~” Î“¡¹ìÖÆÎ§‚1¡ÖÇ*ι쫂1Ö¥ˆ9ÆÏÖ¥ˆ9Ï«‚Cî«„¼¥¥€—ªÿ§�«�§‚4«‚/ÖÎÖÎ ž¹g¬Cr¹`ñ mèÓºš"$&(*,.02468:<>@1DFHJL­PR(VXú^Ú¹ Ö ÎÌ­¡ÐþþšÌ€‚Ì€�Ê€‚¡î‚«î‚«Ê€�‚Ì€�—¾Å¡ ÖÇÊÎÖι)ÆÊ€�•Â¥€—¥€—î¾'áöÌ€‚¥€—'Ë¡ôÊ€�•Ì€�%«« Ê€�«Ê€�á Æ•¾«¹-§‚pÌ€ƒÊ€ƒšÊ€ƒ¢Ê€�šÆ•ÂÊ€ƒ¢•ÂÊ€�ž§‚p«­¨ ƒ º#þþvöÙ¾ÚÉ¡ÙÌÖÆÙÇÿÏÖÆ¦ ÇÿÏÆªÿ¹öÌÚ®ÚÛ•®Ä¡Þ̹ܕÌÙܾ Ë¡ÌÜÝáô­P� X&þþg:ØÙÂ^¿Ù•ÌÚ ŽÌÚ †ÌØÙÂ0Û‚¿ÚÃÙÃ�¡öØÙ•Â#¿­) 6'þg&ÆÙª@Úɡ̧‚Ÿ” Ì€¨Ê€¨·¡ðÆ'¦ªÿ®€ª§‚Ÿ®€©È¡ôÊ€ªÌ&¹Ê&ÐÌ&Ê&Ê€¨‹¡k¥‚ªÊ&þ|þ•¤ø ɡ̀§¹¥‚ªÊ&•¤ødɡ̀§¹Ì€§ÖÆ'Ú¥‚ Ê&•¤ø‚Ê€§Î&¡(ÖÆ'Ú¥‚ Ê&•¤ø‚¥‚ªÊ&•¤øÎ'Ê€¨Ê&—… Ì€¨Ê&Ê€©Ã¡öƾÆ'¾‚DŽšWÖØ®€©ÆÏÖÊ€©ÖÆ'Æ€ªÇ„ƾ•ÏÆ€ªÏÖÊ€©ÏÖØ®€©ÖÆ'Æ€ªÇ…ƾ•Æ'¾Ç„•ƾ‚ÏÆ€ªÏÖÊ€©Ï¹ÖØ®€©ÆÏÖÊ€©Æ'ÏÖÊ€©Ï¹ò­'…&J%þþ"¦ÚÌÚ“ÌØøÇ@ÄÙ^Ë„¡ÖÇιôÙ¹ØØø�Ü‚š¹öØØø�Û‚š¹xØØø†š¹p¬+^¹h$  "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfv­ ¶ÿMANUAL2.10û þ¼²MANUAL2.10 Update to RDS Pascal Programmer's Manual 21 August 1980 Page 1 This file contains information regarding the RDS Pascal Programmer's Manual. The current edition is 2.10. The previous edition was 2.00. ---------------- The old chapters þn5 and 6 have been reorganized into chapters 5, 6, 7 and 8 due to the addition of separate compilation facilities to RDS Pascal. ---------------- The old chapters 7 and 8 have become chapters 9 and 10 respectively. ---------------- In Release 2.10 the fþ86ollowing changes have been made to the Programmer's Manual and to the file 'MANUAL': new --- 0-2 "Third Edition" added 0-3 A new table of contents 1-10 Added "PACKED ARRAY OF CHAR and STRING Compatibility" 2-3 Restriction on non-local GOTþ&�O removed 2-4 Added "Data Limitations" 3-6 Changes to "Default Filenames in I/O Statements" 4-4 Rangechecking code now generated for CHR, SUCC, PRED 4-11 PASCALO no longer uses a separate 'overlay' (.PO) file 8-2 PINFO has new input fileþ;¼name rules 8-5 Changes to rangechecking information 9-2 AOS: Compiler may generate .PU instead of .PX 10-2 RDOS/DOS: Compiler may generate .PU instead of .PX B PACK and UNPACK are now intrinsics C Changes to many Compiler error messaþ/Åges D Runtime errors may now show Module #'s, changed "DIVIDEND" to "DIVISOR" in "MOD" error message, added a new message. Index Re-written MANUAL2.10 Update to RDS Pascal Programmer's Manual 21 August 1980 Page 2 The following þB} material has not yet been incorporated into the Programmer's Manual: 1. There has been some confusion regarding the differences between 'TEXT' files and 'FILE OF STRING[n]'. A FILE OF STRING[n] is composed of fixed length records, eaþ¶ch one being a STRING[n]. Each of these records includes a 'current length' byte as described in the 'Data Representation' section of the manual. A TEXT file is a sequence of CHARs and 'linemarks'. The linemarks permit TEXT files to be read þ-P and written with READLN and WRITELN respectively. FILE OF STRING[n], being a typed file, can only be referenced using GET, PUT, READ and WRITE. TEXT files are compatible with your operating system's ASCII files which have been created using the stanþ´¼dard text editors. FILEs OF STRING[n] are specialized, as are any other typed Pascal files. Examples are the compiler and runtime error files, PASCAL.ER and PASINTERP.ER, which are declared as 'FILE OF STRING[63]'. Each record of these files is exacþ¹0tly 64 bytes in length. (Remember the dynamic length byte!) These typed files can be accessed randomly using the RDS extension 'SEEK', whereas TEXT files may only be read or written sequentially. 2. RDS Pascal supports an assembler interface whicþ±Çh allows access to features of the host system beyond those supported directly by standard Pascal. One common usage of this facility is to access the host system's I/O calls. However, for many of these calls information about an open file isþæ¾ required -- the channel number, for example. In order to permit users to obtain this information, we have documented below a portion of the 'FIB' (or 'file information block') used in RDS Pascal for all files. If you pass a file as a 'var' parameter,þ8¤ you are actually passing a byte pointer to the FIB. We strongly recommend that you not modify any fields within the FIB -- just read them. The interpreter uses the FIB in strange and mysterious ways. You can easily get a program into trouble ifþ ç you 'innocently' modify a field. MANUAL2.10 Update to RDS Pascal Programmer's Manual 21 August 1980 Page 3 The FIB consists of three major sections: (a) a 6-word 'SYSCALLPREFIX' (see the sections on SYSCALL in the Programmer's Manual), (b) aþ,*n AOS-style I/O packet, and (c) additional fields used only by the interpreter. Note that the second section (the AOS packet) is even used in the RDOS/DOS implementation to ensure that programs are fully portable between operating systems.þ The following pseudo-Pascal declaration will assist you in understanding the FIB design: offset fieldname type contents ------ --------- ---- -------- +0: mode: syscalltype; {see 'syscalþ:_l'} +1: error: boolean; +2: callnum: integer; +3: r0: register; +4: r1: register; +5: r2: register; +6: channel: integer; {i/o channel number} +7: isti: integer; {AOS ?ISTI} +8: aosfiletype: integer; {AOS þþè?ISTO} +9: fbufferp: byteptr; {^read/write buffer} +10: ires: integer; {AOS ?IRES} +11: reclen: integer; {# bytes/record} +12: xferred: integer; {# bytes transferred} +13: recnumhi: integer; {record #: hi-order} +14: recnumlo: integer; {record #: þìvlow-order} +15: fnamep: byteptr; {^filename} +16: blocksize: integer; {AOS ?IMRS} +17: deltabl: deltablptr; {AOS ?IDEL} {followed by interpreter-only portion of FIB} MANUAL2.10 Update to RDS Pascal Programmer's Manual 21 August 1980 Page 4 3.þž³ On page 1-4 of the Programmer's Manual we discuss the input and output of STRINGs. It should be noted that a minimum field width for the output of a STRING to a TEXT file in a WRITE or WRITELN statement may be used. The syntax is: : If the length of the is less than characters, - length() spaces will precede the output of the . 4. The proposed standard speþä™cifies that the order of evaluation of a boolean expression shall be implementation dependent. For example: result := ifok(test) and expectation; A possible optimization in the evaluation of the above expression is evaluation of the boolean functioþn 'ifok' only if the boolean scalar 'expectation' is true. If 'expectation' yields 'false' then 'result' will be 'false' no matter what 'ifok' returns. RDS Pascal performs no such optimizations. All boolean expression will be fully evaluated. þµ In other words, if 'ifok' has some side effects, they must always be considered whenever the above statement is executed. Without the use of explicit parentheses, the evaluation of complex boolean expressions is in left-to-right order -- the funþûg;ction 'ifok' will be invoked and its result 'anded' with the scalar 'expectation'. 5. Both the RDOS/DOS and AOS compilers have an additional global switch: "/C" for 'conformance'. See the release notice for full details regarding its use. ÿMANUAL2.11û?? þ¥ÿMANUAL2.11 Update to RDS Pascal Programmer's Manual 14 October 1980 Note: There is no update to the Programmer's Manual for Release 2.11. However, be sure to read "MANUAL2.10" which includes important changes to the Release 2.00 manual.þ ÿPASCAL.ERû?? þóË Message #0. >left parenthesis or constant expected in simple type; skipping 1identifier expected after reserved word "PROGRAM"ype; skipping reserved word "PROGRAM" expecteded word "PROGRAM"ype; skipping þäF5right parenthesis expected to terminate argument list skipping 1colon expected after constant in "CASE" statementlist skipping .period expected to terminate program; skippingentlist skipping >colon/semicolon/left paren. expected after proc name; skipping þ³/reserved word "OF" expected in "CASE" statement name; skipping >this proc/func requires argument(s); left parenthesis expected 5unexpected item at start of type definition; skipping expected )left bracket expected in array definitionon; skipping expected þ!0right bracket expected to terminate set constantpping expected 8reserved word "END" expected to terminate proc/func bodypected 1semicolon expected after proc/func body; skippingnc bodypected 4integer constant expected after reserved word "GOTO"bodypected þ:2*equal sign expected in constant definitionord "GOTO"bodypected 9reserved word "BEGIN" expected at start of proc/func bodyected -unexpected item in declaration part; skippingoc/func bodyected 5identifier or reserved word "CASE" expected; skippingbodyected þ^n4comma expected in argument list of "INDEX" intrinsicgbodyected $period expected to terminate programINDEX" intrinsicgbodyected 5double period expected in definition of subrange typebodyected 4identifier expected in constant definition; skippingebodyected þê!identifier expected in field listefinition; skippingebodyected 0identifier expected in "FOR" statement; skippingpingebodyected %identifier expected in parameter listt; skippingpingebodyected 6type identifier expected after colon in parameter listodyected þ9C)identifier expected in pointer definitionarameter listodyected identifier expected after reserved word "PROCEDURE"/"FUNCTION" +first argument of "READLN" must be variableOCEDURE"/"FUNCTION" þ/Ï identifier expected after periodbe variableOCEDURE"/"FUNCTION" 5identifier expected in definition of enumeration typeFUNCTION" 0identifier expected in type definition; skipping typeFUNCTION" *identifier expected in variable definitionipping typeFUNCTION" þ£^$identifier expected in argument listnitionipping typeFUNCTION" +tag field type must be identifier; skippingpping typeFUNCTION" 0tag field identifier or type identifier expected typeFUNCTION" .identifier expected after reserved word "WITH"ed typeFUNCTION" þÛ‚5right parenthesis expected to terminate argument listFUNCTION" >right parenthesis expected to terminate program parameter list (right parenthesis expected in expressionprogram parameter list 6right parenthesis expected to terminate parameter listter list þW…unexpected item after right paren. in parameter list; skippinggþ> ;unexpected item follows procedure/function header; skippingingg2unexpected item in reference to variable; skipping skippinginggunexpected item after right paren. in record variant; skippingg4identifier or reserved word "VAR" expected; skipping; skippinggþÓ1+unexpected item in parameter list; skipping skipping; skippingg+unexpected item in parameter list; skipping skipping; skippingg+unexpected item in parameter list; skipping skipping; skippingg=semicolon expected after "assembler" in proc/func declarationggþãz/reserved word "OF" expected in array definitionnc declarationgg5reserved word "OF" expected in definition of set typelarationgg6reserved word "OF" expected after reserved word "FILE"arationgg7reserved word "OF" expected in header of record variantrationggþé™+left parenthesis expected in record variantcord variantrationgg8unexpected item follows reserved word "PACKED"; skippingationgg3right bracket expected to terminate array subscriptppingationgg*right bracket expected in array definitionsubscriptppingationggþO¼5right bracket expected to terminate string definitioningationgg:reserved word "END" expected to terminate "CASE" statementionggincompatible types of constants in definition of subrange typegþïƒfile may not be field of record in definition of subrange typeg#array index may not be of type REALdefinition of subrange typeg6tag field of record variant must be scalar or subrangenge typegsemicolon expected after keyword "forward" in proc/func headerg)index of array must be scalar or subrange" in proc/func headerg-base type of set must not be REAL nor INTEGER proc/func headerg7intrinsics "PRED" and "SUCC" require scalar as argument headergþ1•may not read into packed fieldequire scalar as argument headerg8unsatisfied forward declaration of procedure or functionheaderg(semicolon expected after type definitiondure or functionheadergfile value parameter not allowed; file must be "VAR" parametergitem preceding uparrow must be reference to file or to pointerg>string literal argument not same length as packed array param.g8illegal type of loop control variable in "FOR" statementparam.gþNB5illegal type of expression in "CASE" statement headerentparam.gsubrange bounds must be scalar; STRING is PACKED ARRAY OF CHARg&array index may not be of type INTEGER is PACKED ARRAY OF CHARg+assignment to standard function not allowedACKED ARRAY OF CHARg&equal sign expected in type definitionlowedACKED ARRAY OF CHARgþIfno such field in this recorddefinitionlowedACKED ARRAY OF CHARg>identifier or "END" or "CASE" expected in field list; skippinggargument must be variableASE" expected in field list; skippinggargument of "EXIT" must be user-declared procedure or functiong>argument of "EXIT" must be user-declared procedure or functiong/first argument of "FILETITLE" must be file nameure or functiong6first argument of "GET"/"PUT"/"SEEK" must be file namefunctiongþ\3second argument of "SEEK" intrinsic must be integeramefunctiong7comma expected; "SEEK" intrinsic requires two argumentsunctiong?"READ"/"READLN" require integer, real, char, or string argument$error in type of intrinsic parameterl, char, or string argumentþÕ‹$error in type of intrinsic parameterl, char, or string argument$error in type of intrinsic parameterl, char, or string argument$error in type of intrinsic parameterl, char, or string argumentstring argument required hererameterl, char, or string argumentþf6second argument to "SUBSTR" must be integer expression argument5third argument to "SUBSTR" must be integer expressionn argument;"WRITE"/".LN" require integer expression after second colonment>"WRITE"/".LN" require int/bool/real/char/string/packd.ary.chartþº6explicit argument to "PAGE" intrinsic is not file nameary.charttoo few arguments to "PAGE" intrinsic is not file nameary.chart1type conflict of operands in assignment statement nameary.chart*type conflict of operands of "IN" operatoratement nameary.chartþ$Ë0type conflict of operands of relational operatort nameary.chart>comparison of packed arrays of char requires identical lengthst8only equal/unequal comparisons permitted for array typesengthst9only equal/unequal comparisons permitted for record typesngthstþm6operand of unary plus or minus must be real or integerpesngthst)illegal type of operand(s) of binary plusal or integerpesngthst*illegal type of operand(s) of binary minusl or integerpesngthst6illegal operand(s) of "OR" operator; check parenthesespesngthstþ§á,illegal type of operand(s) of multiplicationarenthesespesngthst+illegal type of operand(s) of real divisionnarenthesespesngthst?proc/func declaration is too deeply nested; display limit is 12>proc/func declaration too deeply nested; lex. level limit is 82þ™.,illegal type of operand(s) of "DIV" operator. level limit is 829proc/func too long; use swapping and/or overlaid compiler is 82,illegal type of operand(s) of "MOD" operatorlaid compiler is 82)too many jumps in this procedure/functiontorlaid compiler is 82þäÆsubrange bounds must be scalar; STRING is PACKED ARRAY OF CHAR29comma expected in argument list of "WRITE" to "TEXT" file CHAR2þ3Ø6label on this statement was not declared in this blockile CHAR2;unexpected item follows procedure/function header; skippingHAR28reference to entire array expected in "PACK" or "UNPACK"ingHAR29explicit argument of "PAGE" intrinsic must be "TEXT" filengHAR2þr�&error in real constant; digit expectedmust be "TEXT" filengHAR27string maximum length must be in inclusive range 1..255lengHAR2.too many segments in this program; limit is 16ge 1..255lengHAR2-record too deeply nested; display limit is 126ge 1..255lengHAR2þoæ7"WITH" statement too deeply nested; display limit is 12lengHAR2;too many procedures/functions in this segment; limit is 149HAR29proc/func too long; use swapping and/or overlaid compiler49HAR2error in POINT statementswapping and/or overlaid compiler49HAR2þÖ”error in POINT statementswapping and/or overlaid compiler49HAR2error in POINT statementswapping and/or overlaid compiler49HAR2error in POINT statementswapping and/or overlaid compiler49HAR2error in POINT statementswapping and/or overlaid compiler49HAR2þùûerror in POINT statementswapping and/or overlaid compiler49HAR2cannot create overlayentswapping and/or overlaid compiler49HAR2cannot create overlayentswapping and/or overlaid compiler49HAR29source line too long to process; split into several lines49HAR2þ+E.may not switch segments; rearrange source codeveral lines49HAR2>reserved word "PROCEDURE" or reserved word "FUNCTION" expected2=was declared both "forward" and "segment"; add "segment" hered2"record type of this file not knownegment"; add "segment" hered2þ;w#subrange of type REAL not permittedgment"; add "segment" hered2error in POINT statementt permittedgment"; add "segment" hered2cannot create overlayentt permittedgment"; add "segment" hered2(zero-length array elements not permitted"; add "segment" hered2þ:9explicit argument of "EOLN"/"EOLCHAR" must be "TEXT" filehered2/illegal character in source text; blank assumedTEXT" filehered21included file may not contain $I control commentsXT" filehered21procedure/function parameters not yet implementedXT" filehered2þ ¨0field addressing problem -- Please inform RDS.dXT" filehered23constant addressing problem -- Please inform RDS." filehered23indirect addressing problem -- Please inform RDS." filehered27unanticipated end of source file; check BEGIN/END pairslehered2þ�‘9program parameter not declared as file in outermost blockhered27assembler module must not be declared as Pascal segmentckhered28comma expected in argument list of "WRITE" to typed filekhered2#"OUTPUT" not declared in this scope"WRITE" to typed filekhered2þL]-"OUTPUT" not declared as "TEXT" in this scope typed filekhered23real number may not be argument of "PRED" or "SUCC" filekhered2file of file not allowedrgument of "PRED" or "SUCC" filekhered25too much local data; stack frame limit is 16383 wordsilekhered2þJ>"PACK"/"UNPACK" offset not compatible with index type of array28reference to entire array expected in "PACK" or "UNPACK" array2>"PACK"/"UNPACK" require both arrays to have same element types26"PACK"/"UNPACK" require reference to packed array herent types2þ‹~:"PACK"/"UNPACK" require reference to non-packed array hereypes22comma expected in argument list of "PACK"/"UNPACK"ray hereypes22comma expected in argument list of "PACK"/"UNPACK"ray hereypes22comma expected in argument list of "PACK"/"UNPACK"ray hereypes2þç�?illegal assignment; PACKED ARRAY OF CHAR should have lowbound=1segment too long; limit is 32KBY OF CHAR should have lowbound=1segment too long; limit is 32KBY OF CHAR should have lowbound=1)"ODD" intrinsic requires integer argumentshould have lowbound=1þÅ)"CHR" intrinsic requires integer argumentshould have lowbound=1segment too long; limit is 32KBr argumentshould have lowbound=11too many elements in packed array; limit is 32767ave lowbound=1array too large; limit is 32KBray; limit is 32767ave lowbound=1þýarray too large; limit is 32KBray; limit is 32767ave lowbound=1array too large; limit is 32KBray; limit is 32767ave lowbound=1array too large; limit is 32KBray; limit is 32767ave lowbound=11too many elements in packed array; limit is 32767ave lowbound=1þ6W9global labels not permitted in separately compiled moduleound=1Î)ÖÎ'¶>¡ÖÆ ¦FCOM.CMϹ ÖÆ ¦COM.CMÏÖÆ ÏÖÆ ®�ŠÏÖÊ�ŠÆ€Œ!ÏÖÊ�ŠÏ®�‹®�ŠÈ¡Ê�‹Ì¹ÞÐÌÖÆ ®�‹ÆÏÞÊ�ŠÃ¡ôÖÆ Ï ÆHøÇÿáÖÎÖÆ ®�ŠÏÖÊ�ŠÆ€Œ!ÏÖÊþ¶Õ�ŠÏÆ€Œ¾!•Å¡ÖÎÖÆ€ŒÎ%ÖÆ€Œ¦.PXÏÆ€Œ¾•ËÆ€Œ¾Ã�¡"Æ€ŒÌ�ŠÖÆ�ŠÆ€Œ!ÏÖÆ�Ц.PX$ÏÆ�Šª!Æ€ÛÌÖÆ€�ÙÇ^†ÎÖÆ€�Æ€ŒÎÖÆ€�ÎÊ�zËÊ�{ †Å�¡Ö*ÎÊ�‡¹Æ��¶'¢€®·¡Ö2ιÖ0ι ¬¹$Æ€Û¤ùáÖÎÊ�ˆáÖ1ÎÊ€£Ì®�‹®�ŠÈ¡DÊ�‹Ì¹ÛÐ̶'Û¤Ì�‹Æ€ÛÛ¤þ9Ì�ŒÊ�‹Ê�ŒøšÊ�‹¢Ê�ŒùšÊ�‹¢ÚšÊ�‹¢šÛÊ�ŠÃ¡ò¶'¢€¦Ì�ŠÊ�Š¢Ì�‹Ê�ŠÊ�‰šÊ�‹Ê�€šÊ�‹ø¹!Ê�‹¢Ÿš¹&Ê�‹¢Çž¹Ê�‹¢Çž¹¬¹)"ÖÆ Ï­™Ä:œê1®®È¡Ú̹ØÐÌÖ²€‚ÏØÙáö­(2ÖÆ€‚Æ€ÀÏÖÆ€‚¦CLIFILEÏÖÆ�Î)Ê�¡ÖÆ€‚¦FCOM.CMÏ¹ÖÆ€‚¦COþ0M.CMÏÖÆ€‚ÏÖÆ€‚ÏÖÎ2ÖÆ€‚ÏÖÎ2¶,ŸË¡UÖÆ€‚Ï Æ€ÀøÇÿËÖÆ€‚Ï “„¡2ÖÆ€‚®�ÏÖÊ�ÆÇÿÏÖÊ�ÏÆ¾ÅÆ-·„¡Ö¶,ÆÎÖÎ2¶,£¸,¹öÖÆ€‚Ï­eÊØÌÜ¢ ÌÜ¢jšÜ¢lšÝ¢ٚݢÜ¢FšÝ¢Ý£ ‚šÚšܢ,šÜ¢nÚÚ‚š¹4Ü¢xšÜ¢zšÜ¢tšÜ¢ršÜ¢všÜ¢6 šÜ¢p šÜ¢,šÜ¢nšÝ¢Ü¢~šÝ¢þäO Ü£7šÛ¡ Ü¢0¶,šØ¸,­ŒØ£5¡Ö(ØÎ/Ù¾!ġآFÖÙÆ!•ÏÆª!Ö&ØÎ/¹ÆÙª!ÖÆÎ%Ø¢Fƪ!Ø¢Fƾ‚¿­NÙáÖ/ØÎ/ØÌÝ¢ ÌÝÌÝ£5¡7Ù¹$ÖØÎÖØÎ¹&ÖØÎÖØÎ¹ÖØÎÖØÎ¹¬¹ .¹òÝ¢F¦INPUT¯Ý¢F¦OUTPUT¯�¡DÝ¢zšÝ¢F¦INPUT¯¡ Ý¢F²Dª!¹¶*þR‘ŸË¡ÖØÎ/Ý¢F²?ª!ظ*Ý¢FÝ¢F¾‚¿¹Ø¢zšÝ¢.ÙšØÌÙá=ߚߢǚߢޣ šÚž#ßù“ßùßý Ä�¡ߚߢǚߢޣ šÚž#ßù¡ÖØÎ0ߚߢÇ*"šÚž#ßù¡ÖØÎ0Þßýšßšß¢Ç?šß¢Þ£ šß¢šÚž#ßù¡ ßýË¡ÖØÎ0ßù“¡ö¶'£V“¡P¶IÌ ÌÌÛ ÈÜ“„¡Ê ¢Û•¤¾Ã¡Ì¹Û‚̹ôÜ¡Ê ¢Û•¤Ý¢Fª!Ê þåzÛ•¤Þøš¹Ö/ØÎ/Ùáß•šß¢šÚž#ߚݣá#ß•šß¢šÚž#ßšÙá Ý¢rÝ£8š¹Ý¢ršß•šß¢šÚž#ߚݢjšÙá Ý¢hšÖØÎ$¹Ý¢hšÖØÎ$Ý£Ë¡ÖØÎ&­Á $Ø£5¡xØÌÛ¢ ÌÛÌØÌÚ¶*ÃÙË„¡Ÿ¸*Û£ÃÛ£‹„¡ÖØÎ#Û¢jšÛ¢lšÛ¢xšÛ¢všÝšÝ¢Ç?šÝ¢ ÜøšÚž#Ýù¡ÖØÎ0Ùþ| ‹¡ݚݢǚݢܣ šÚž#­†ØÌÙ¢ ÌÙ¢lÙ£4šÙ£áÙ¢všÙ¢xšÙ¢ršÙ¢t‘š­4$ØÌØÌÛ¢ ÌÙÉÙÛ£8Ä�¡Ö'ØÎ/Û¢rÙšÛ•šÛ¢šÚž#ÛšÛ¢lš­> Ù£;¡Ù£8̹٣̭٣áÖÙÎ!Ù£6Ì­ ÖÙÎ!Ù£<Ì­ ØÌØÌÛ¢ ÌÛÌÛ£5“þ®¡Ö)ØÎ/Û£=¶)„¡Ö¶*Î#Ý¢Ç?šÝ¢ÜûšÝ¢ÜýšÝ¢ ÜøšÙž#Ü¢ ÝüšÝýÃÌÝù¡;Ú¡2Û£áÛ¢~Üþ¿ܢ Üþ‚š¹Û¢~Üþ•¿ܢ Üþ‚šÛ¢lš¹ÖØÎ0¹Û¢hš­ž3ØÌÚ¢ ÌÚÌÚ£6¡Ö ØÎ/¹òÚ£áôÚ£9Ú£:Å¡JÚ£¡ÖØÎ¹?ÖØÎ3Ú¢ršÚ¢tšÚ£=¡,ØÌܢǚܢڢ~¾šÙž#Üù¡ÖØÎ0Üû áÜ¢ šþ�$¹öÚ¢|Ú¢~Ú£9¾šÚ¢rÚ£9‚šÚ¢lÚ£>Úڣ>²¼‹¡Ú¢6Ú£8šÚ¢pÚ£>šÚ¢| šÚ¢xš¹Ú¢xš¹Ú¢lšÖØÎ3Ú£6“¡ Ú¢rÚ£9‚š­‚ ä&Ø£9Ø£:Å¡rØÌÚ¢ ÌÚÌÚ£5“¡Ö)ØÎ/Ú£=¶)„¡Ö¶*Î#ØÌÜ¢ÛûšÜ¢ ÛøšÜ¢Ç?šÙž#Û¢ ÜüšÜù¡ÜýáÚ¢~Ûþ¿ۢ Ûþ‚š¹ÖØÎ0Ú¢tÛþ•šÚ¢rš­„þþtØ£áØ£;¡ÖØÎ&Ø¢všØ£6¡Ö ØÎ/¹ÖØÎ&­.ØÌÙ£;Ù£6“„Ù£Ä¡ÖØÎ&Ù¢vš­$!ÖØÎ “¡ÖØÎ&¹öØ¢vš­ ÖØÎ!ÙØ£>šØ¢vš­Ö#ØÎ/­ØÌÖØÎ!ÙÂÚ¿ÌÛÚÈÜ£<“„¡ÙÛÂÜ£>¿ÖØÎ&ۂ̹öÙÂÛ•¿Ü£<“¡ÖØÎ&¹ô­3 JØÌÖØÎ!ÙšþóÅÌÌÜ£> áÖØÎ&¹öÜ£>+ÃÜ£>-Ã�¡ Ü£>-ÃÌÖØÎ&Ü£>²¼‹¡ÌÙÙø �0•Ü£>‚šÖØÎ&¹ôÛ¡ÙÙø‘šÚ¡ÖØÎ/­5\ t ØÌÖØÎ!ÙŠ½ÌÌÝ£> áÖØÎ&¹öÝ£>+ÃÝ£>-Ã�¡ Ý£>-ÃÌÖØÎ&Ý£>²¼‹¡ÌÙÙ¼ Š�Ý£>0•Šƒ½ÖØÎ&¹ô‘ÌÝ£>.áDÌÖØÎ&Ý£>²¼‹¡$ÌÜ‚ÌÜKš֨Î/ÙÙ¼Ýþ“£>0•Üž$‰‡ƒ½Ý£>²¼‹“¡òÝ£>eÃÝ£>EÃ�ÜÉÚ“�„¡>Ý¢všÖØÆÎ Ú¡ÙнÌÜ€Kš֨Î/ÜÉ¡ Ùټ܀ž$‡½¹ Ùټܞ$�½Ú¡ÖØÎ/Û¡ÙÙ¼’½­¨Ý ØÌØÌÚ¢ ÌÚÌÚ¢hšÜ¢ÛûšÜ¢ ÛøšÚ£¡Ú¢~Ú£9¿ܢÇ?š¹ Ü¢ÛýšÜ¢Ç?šÙž#Üù¡ÖØÎ0­V4Ø£5“¡Ö)ØÎ/ØÌÚ¢ ÌÚÌþm\Ú£ájÚ¢~Ú£9ÂÚ£>¿Ú¢rÚ£9‚šÚ£9Ç„ÅÚ£>²¼‹�¡7Û¢ Ú£9šÖØÎ4Û¢ šÚ¢ršÚ£>áÚ¢~¿ܢšÜ¢Ç?šØÌÙž#¹ Ú£=¡¸)¹/Ú£8Ú£9•ȡڢlšÚ£8Ú£9á Ú¢pÚ£8‚šÖØÎ4Ú¢rÚ£9‚š­À Úšآ| šÖØÎ ڕ̹öØ¢|ÙšÖØÎ ­ (ØÌÚ¢ ÌÚÌÚ£á,Ú£9šۢ Ú£9šÖØÎ4Û¢þ‰Ž šÚ¢ršØÌÙ¶*á¸)¹ÖØÎ ­J#ÚÛÅ¡ ÖØ ÚÛ•ÎÛ̮ڕ®È¡Þ̹ÜÐÌØ¢|ÙܾšÖØÎ ÜÝáö­ @Ù¾ÌÚÈ¡Û̹ÚÛÅ¡ ÖØ ÚÛ•ÎÛ̮ڮȡÞ̹ÜÐÌØ¢|ÙܾšÖØÎ ÜÝáö­ LØ¢| šÖØÎ ÖØÎ#­Ø¢| šÖØÎ ÖØÎ#­Ö#ØÎ/­þÙs Ù¡ ƦTrueª¹ ƦFalseªÖØÆÚέ*"ÌÌÆ ¿ÙÉ¡ Ù€ÌÙȡƦ-32768ª ¹cÆÂ-¿Ì®®Ä¡IÊ̹ܕÌÙ²"ܤø†0‚ÌÝ0ÃÜńބ¡¹ÌÆÛÂݿۂÌÝ0Ë¡ Ù²"ܤøŽÌÜÊáöÆÂÛ•¿ÚƾɡƾÌÖØÆÚέ` ¨ÌƲ ¼½Æ¼³Bd±¡¶‚¸ÚþÕX‚ÌÆÆ¼² ¼‡½¹öƼž Ä¡¶‚¸Ú‚ÌÆÆ¼² ¼‡½¹ôÚÅ¡ ÚKšֶÎ/² ² ¼Úž$‡½ÖÎ5¹JƼžÉ¡¶•¸Ú‚ÌÆÆ¼² ¼�½¹òÚÅ¡ÚKšֶÎ/² ² ¼Úž$�½ÖÎ5­M›È Ü5Ö¶ØÎ­6®Ø®È¡:Ü̹ÚÐ̲ ¼žÌÖÙ0‚Î6² ² ¼ÙŠ–½²þon ² ¼² ¼�½ÚÛáö­8 N7Æ ž$½Æ ž$½ÛÉÜÉ�ÜKÅ�ÛKÅ�¡Ö$ØÎ/Ƽ³µÌÆ Æ¼�½ÌÝ¡òÆ ¼³·¡Æ Æ ¼³@€Üž$‡ƒ½Æ ¼³·Æ ¼³A °„¡ÖÎ5®ÛÞ•Ü••®È¡Ê̹ßÐÌÖ Î6ßÊáöÊ¡Ö-Î6¹Ö Î6ÖÞÎ7Ö.Î6‘®Þ®Ä¡Ê̹ߕÌÖ0Î6Ü•ÌßÊþ >áôÖÜÎ7¹ðÛ‚É¡‚ÌÆ ¼³¯¡Ì¹ÖÎ5Æ Æ ¼³@€Û••ž$‡ƒ½ÖÎ5Ê¡Ö-Î6¹Ö Î6ÖÎ7Ö.Î6ÖÛ••Î7ÖEÎ6ÞÈ¡Ö-Î6¹Ö+Î6Þ•€ É¡Ö0Î6ÖØÞ•€Î­‡£Ù zÙ¦ªÚÅÛÅ„ÚÛ‚•ؾȄ¡ØÚÂÙÂÛžÙÂÛ¿¹Ö¶+Î/­8پؾ‚ÚÈ¡ÙÂØØ¾‚ÂÙ¾žØÂپؾ‚¿¹Öþ“¶+Î/­2ÌھšSÚ¾ÌÌÙ¾Ú¾•‚ÌÆÂÚ¾¿ÜÛÈ¡3ÜÛÜ•ÝÙÜž ‚ÌÜÛÅ¡¹ÙÜÂÆÂÚ¾žÆÚ¯¡Ü̹܂̹ö­:ƒfÖÎ1­H ­xÌâ¶ â̾¦¶\ê DŽ dš” lÆ " Ì>TâødÆ `r$ì PHZ€   VH Æ Ö b Bàþ"[²xnÿ7ÿÿÿÿÿÿÿÿÿÿ¼  8X6H**º�+ª ªÀ8Iï8)6X6H**º�+ª ªÀ8JïRª�ªÀ8)6ª�H7(**º�+þÐBª ªÀ8Iï87î8)60-•P-("�H"((Ž <Ž´ n0-–P-("ŽH"€ÿ ç;óŸxÜÚÓÆå§‹Vý'í±|-øv†¶CóÃúƒ0ÝÓuYgî^€Ò�oãåM.86—Ï42‡0¦Éþ õ(3Û¹3ï >x#6ùEö[¼¿“ÇPÎRä]........þ ¾RRRRRRRRUUUUUUUUUUUUUUUU½ÄÄÄÄÄÄÄ1–ö2(T(]ÿ) X²(*ö2(T(] X²(*öP(T(] X²(*ö$((B]0(" X²(*öB]1– /–2(T(]ÿ X²(* /–2(T(] X²(* /–P(T(] X²(* /–$((B] W²(* W¢(*‚À–(T(]Ô(T(] W¢(*�ò2üƒþì»þ X¢(*–"(D(] W¢(*�ò2üƒþ X¢(*–P(T(] W¢(*�ò2üƒþ X¢(*–$((B]$((4((Ó�B]4((Ó�2(T(]1 Æ4((Ó�–"(D(]ÿ W¢(*H*P7@80(–P( "Ä n- 807³�8(�ûŠ©"CÓû«ûÊP8)](L( W¢(*Ž] W¢(*4((Ó�H*P7@80(–P( "Ä n- 807Š8(½û©"þ1TCÓû«ûO W¢(*0(•P(<((û�ÓH*Š©"CÓû«ûO4((Ò�"‚‚À0IÇ(D(]$((4((8IçÒ“‚ÀH**ÒúÀïŽJO$((†/<((H*ó�2(J·À(*•ž(\(8)]H* n X¢(*‚œ $((†4((–(T(]H*ŠP…4(( p8)4((¶(T((*O X¢(*†4((–�"(D(] X¢(*H*Š4((<((Ó�û�©"CþKåÓû«ûO X¢(*H*<((4((Š W¢(*H*<((4((P7ú�+ú ªÀ0IÏú@07¥ n«©OP7ú�#ú ‚À0IÇú@07X7H88IÒ’úÀ*ïúÀŸúÀîJÒ@(887ûÓ«åO$((0HÆ4((Ó�B] W²(*H*,((… q<((®¾(\((* W²(*H*Š… p8j¾#ÎÔÎ8k¾+§(D(O$((4((Ó�2—‚’Ò�ý(T(]H*,(þ3x($((<((û�’Ò’ªPý�€3—¶SO$((‚Z�(D(]$((�(D(]$((4((� $((4((–(T(]$((4((‚J ÒJ–ÒZ–ÒJ––Ò[(T(]H* n,H*…4((,((Ö/ ªJ rª[‚  rªZ€  ÒK®/÷ð­(L(O nH*4((Ò,((…ªJ„ s(L(O0("(D(ÌH*4((þ7Ö/8(+…ªJ„ s8(‚JÆCO n n+$((4((—(T(]$((4((€—”(T(]$((‚‚……P(D(]$((€(D(]0(]]0(ÿ]]0(":ÿZBÿ8)]0("(D(] X¢(*4((–(T(]$((<((4((Ýþ.Å‚J(T(8)]H* n$((4((•…Q…(D(]$((4((•ÕP(T(]$((4((•Ö/……P(D(]$(þ7b(4((•ÒJ……P(D(]$((4((•ÒJ…Q…(D(]$((4((•Ö/…Q…(D(]Õ ÕP0@0A0B0C W¢(*9ž@R�}G9ÞKQgRRRR X¢(*H*‚ K@6<((4((Ó�û�#*� LÓû6ùK X¢(*H*‚ L@6<((4((Ó�û�#*� KÓû6ùL$((8Hæ8-ùøCúP(\(Šþé:H*9øÞ#(D(8(3þ;ÿX7Ò�"Ò ‚À8IçÒ@87P7ú�+ú ªÀ0IÏú@07‚ ª FFª DŒ@6H6ÓûX7Ò�"Ò ‚À8IçÒ@87P7ú�+ú ªÀ0IÏú@07Œ&�$6ä8(3þ;ÿX7Ò�"Ò ‚À8IçÒ@87P7ú�+ú ªÀ0IÏú@07� Œ…P @ B<((4((,((ŸKL X¢(*H*9‚Þ+(L(8(3ÿþÖK;þ‚ å@6P7ú�#ú ‚À0IÇú@07X7Ò�*Ò ªÀ8IïÒ@87ŒÑ�ÏÓû6äÆ W¢(*4((• ]=”H*8(ÝûŠÂ¥ò–©"CÓû«ûX($(('H*Ê¥0(P7@80(–P( "Ä n- 8078((D(®/ ©"C„–ž«ú,((©…ÔCÞ«ýO$(((D((D(H*<((4((ÝÕ(T(O ÒK n!8þå‚å nP6X7(Gï8k¾#(7ª�ª�ª�ª�86ú�ú�ú�ú�½(D(„Žú86(Gï8j¾+§(6ª�ª�ª�ª�¨(D(…«ü 7‚�‚�‚�‚�ƒ(D(Oï$((0(•P(H**ª�ª�ª�ª��…Úž½* G§+8lž#§…P8)B(*] zª H6"+�JÓû6ùP(O lªüH6"+€�ŒJÓû6÷ð ]ªíH6"+¨§BÓû6þ‘cøâ9Þ0R?RO Eª H6"+�Óû6ù…Q…,((®0(µP(BO /ª H6"+�Óû6ù……Pê ª H6"+��Óû6ø…Q…Ú ª H6"+§¥Óû6ø…Q…ÊX6H*8(+½ÔÞ3¢Å‚  8(+½òµ”–6 ‚K8(+«S�KΫ«(D(«0(P7@80(–P( "Ä n-þúÔ 8078(©"C„–ž«ú,((©…ÔCÞ«ýÉ?ÿÿÿÿÿÿ?ÿÿÿÿÿÿÿþÿüÿøÿðÿàÿÀÿ€ÿþüøðàÀ€ @€ @€0(ÓP("ÿ A8)]0(ÓP("ÿB"þBÿ @•"ÿ 48)]0("ÿ‚P‚�Bÿ]0("ÿ‚P‚°Bÿ]0( %P(8)]0( !P(8)]0( P(8)]0( P(8)]0(ÓÓ"ýBÿ"þBþ% P(8)]ÂH*0( P(O[|ˆ’›¥p!(D(!(D(0("ý‚K ñ î òP(8)]0( íP(8)]@€4((ÒJ! Å Ö! –"(D("(D(]K nLAA BdC>€D'EjEô$F˜–€G_^H;šÊI%@¾JHvJèÔ¤K‘„æLZóM8×êN#†òO4WOÞ jPŠÇ"QV¼uR65ÉS!á�T-TÓÂU„YPVR·ÒW3²ãX OÎY1àYÉòÇZ~7¼[NâÕþÙ\1MÅ]Л^Ba^À—Ë_x^ß`K;Ka/bc)c]ùc·«ÂdrËYeG¿f,×og¥h„'h¯)‰imyõjDl9k*ãlºFm´lm§ 8nhg£oA@Åp(È{q}MqþårŸO"sc‘ut>:éu&äÑvOvów—íÓx^ô¤y;Xæz%�{.º{çÓD|�ä }Zކ~8™#_¬â0+80(D((L((T((\(8,(\(8(X0š] W²(* Wº(*H*(\(80Ký8>ÞÖPÞX6#†/.…PC#þù®ƒ�‚  n ((Ž0<Î0-´ n ((00Í0CÎ0(ÚžX(©"C„–ž«ú"–86#ƒ�(0ŽH00CÍK863P,* J�À$((ª  ­P�  0,•"ƒ�•P+ 0@/P8) W¢(*H*00Jý0>*H, W¢(*H*00Jý(+0-µ0.µ00(:Jþ,+0,•<,úK!Iä""‚K Sƒ�•P+"‚K99œ 0+P,ÑÐ"•P+"@þ¨¸0IÇÏ8)� #ü�â;üƒö80Cü#ÿ‚P‚ CÿX)0+"üP7@80(–P( "Ä n- 807ÑÐ"ƒ�•ÊPH*]þ W¢(*ƒ00Jý0;•"ƒ�•P+ ;@, 1Ò"o80#ÿ‚P‚ CÿX)2ÿ I—!–"@60(6$0+"ÿ(J§À@680X)/ W¢(*@6(J$,‚K1Í•T!§À7·À• 8>ž†Pž#ƒ�0)Ú(Bµ�X)Ú� 6Ž«©"Cþ<ØÓû«û8)#@,#ÿ‚P‚�@0+ý3þÒK ®8)P+ 6‚  C�X(H*0)ÓÚ(C½Š©"CÓû«û„žX((*80#ÿ‚Z;ÿüúPú�X)]$+§À(@� Ë+ýöH6,(($((ªÀŽ0+ @•"ÒP•P*$+0JÇ·•  $,‚À0IÇ·• O3þÒKÂ(\( &<(( @•"ÒP•Sý3þÒPÒ�"0JÇ·• '‚À0IÇ·• á3þÒPÒ�"0IÇ;ÿþÏlÙ(6H* n "o0+ @•"ÒP•P*+üH6(6#ÿ‚P‚��H63þÒKÂ(\( ê<(((6ª "(I§,((�  $((‚�•"ÒP•SýO(L( @•"ÒP•Sý;ÿÕ W¢(*’ÀÒS0JÆ‚JŽ‚ 0+–"ÒP•Ê]$((‚ƒé«]³�$((*�®.*�ªJ *¥(A¶–"ÊP�]ÓËP] W¢(*H*1–RD�ÃK0RR lg€ïþú' —RRRRRR”RRsiGIMKOQS+2Rz7YRRR4((Ó� -‚PB]4((Ó�"ƒ�0-” n0.• n@-]$((4((Ó�(-�H-ªPJ«� <� (¤ n H"(*] $<((û�C<((û�K<((û�SO ò -0(Å0<ņ/…(D(]$((ÕPÇ(D(]4((!Þ!æ!ë$((<((4((þ/]ùX7H88IÒ’úÀþ/8*ïúÀŸúÀîJÒ@(887Óûï8)]$((<((4((†/O�X7Ò�*Ò ªÀ8IïÒ@87P7@80Iú’ÒÀ#ÇÒÀ·ÒÀÆCú@ 807ÓûƒåO$((<((4((–ž¬¶¾‚JO�X7Ò�*Ò ªÀ8IïÒ@87P7@80Iú’ÒÀ#ÇÒÀ·ÒÀÆCú@ 807¬¶¾ƒäO8(+þ#ýCþ‚ O#ÿ3ª$+ýªKX7Ò�*Ò ªÀ8IïÒ@87¥ 9¬¶þò8X7þ½‰Ò�*Ò ªÀ8IïÒ@87¥ (Óþó(+ýªKX7Ò�*Ò ªÀ8IïÒ@87¥ ¬¶þòX7Ò�*Ò ªÀ8IïÒ@87¥ Óþó#ý+þ¥Cý A�X(O… …P @ A B C D0(4 8()¾X(X)X0…�CúX1! æCÿ =(D()] ÿûJ2ÚÏÖÍÖÏH)H($,‚C#) � 1–�‰""6"A"U nûX6+8)'þй‚K;ÿü0JÇÀE'þÇÀE3ý @•;þ„ž#úP�õUbcdX6­Š$,0JÇÀE÷8+#ÇÀEô„ž#úP� *ÔÆåEë0; A•"ƒ�•"ý2üÆ0CÆ01Æ@(@0ª $6! (D((L(81X))]3´ÏX69ªƒ‚�Æ�ûüª°6X6Å 9 ªP‚@ŠŪ@ûûý!ý6ÿðX7ýªKû©ÒKøÑX8 p88úZÑú›¨€«ƒ7X7ý‚KþÞû¨€«ƒÒKøÑX8 q88úZÑú›©�72\2 @–…BBÿ y<222\2 z @•<222D2 u$222T29ž422 vOCüûXRS¸X6! YP3! YP2! YP4!–P56 f n nðÿú2\284#+3;Ž«„Þû…%84)™îH6+9ìç 848B2\2<6úPÒ@ª@‚@2û\6<22í84CKS#(J�Ë42284…)ÌCû«ýö2\204"*ûŽ!b�Jû"*úŽ€…pBú82!=žX2!8ÆCþ!6ÆCý BC…CüCû+Kÿ/þ7ý p82þý3û–üSû¢ÿôGþ#þ+ý3ÅCþÎKýý#û+üKû­KüâGþ82!�X2þYD84!K�X4 "83422ÿü2\2841=Þ05Ý:X4’PÕpSÒŠ�C!0C…CCC 83422@2\284#1û­•1•+Ò ªZÖPѪ�Óþ#‚Š©! �X4¢83422 nDK2\2841ûÝX4#+ Ž«„# + Ž«……P+ªŠ„834224ò832\2 ‚0422 C B A @…P2\22D2 |84þ !Ì�X4ÕP#+ Ž«„# + Ž«…#‚ŠÒPÒP$22Ç‚ 83422ÿüŸÿú2\284#û+¥)„¦Cû#ú+Ž€­pKú#ü+Œª ]û1êö (B æ8402!S–P2 BBþ!MÆBÿ#ü+ý3”¬ q02Nÿ84Z BBý…6ÿ+ p02:K ýøC 1584…#+ ‚ ¥¤C ùøÓ÷02‚ ÿà)±84#Cüû«ü84ÿþÍ)¦"ùCüÓû«û029õP284þò�1 ÝX4 83422ÿùÿû n2\283(4K’C*ÿK w# w }! +¦C w {ö# x4222\28304"C…B!K w } ‰)H�?C!A w | 4C w 4 w } ˆ# w!9 Š } ˆ!0 Š 4 w# w { ˆ# w | ~!& w }# x+!=§ª�ª�04:îJ83‚C! w ~ü#‚ƒ! w ˆ ~422 n(@FLúþÖjÿÿÿÿÿÿÿÿB<�g¡ö EDvNøÁ)×÷IF¾€XÀû?HACmTš_àâÝhEPÒm·ðF[˜ \8œ´u@€A žf;Ì’AGe+‚þ…Q…2\283C04"‚F"‚‚N")O¥ J†@C04"‚J!G w }ø÷ 4 w!@ w „!>‚!<‚C 4 w# w | ˆ# w { ~ 4 w 4 w } 4 w!* Šþþ‚ ˆ!( Š ~ }# ! w } {! w }422…P04B! B„BBBBó n@¸Äê¾ÊÐ×êA @€@µó3ùÞd„@±r÷ÑÏy¤@o-ìT›”8ÇBSïP þ©œB]vÂ1I«¹fBZ,¸—¿YÀAB»ÅÜÛ>†)B=ÂÕ1ï‹oB-\K߬•u2\28304"‚Š2"‚,ÂCþaª w04")žJ¥ ‚€C…pC!$ Š!" w }0404"+ŽJ BCS# w# w ~ {! w }ö ˆ#@4422 n@RL@äù*ù¨Íê@9>Nð(§ü@@@€2\28304"C…BCC"):¥!= w ˆ ~ 4 w!1 w „‚ 4 w!- w }!, w | ˆ!& w { ~ 4 w 4 w } 4 w! Š ˆ! Š ~ }þ|! w {! w {#D4422A·«¥½±ÄÝA2Cö¨ˆZ0Œ@† ‘Ák›,A¶zèXLªt@D˜Qz{5XÃA!ûTD-FAɈgô)ƒß2B}”D@nV�C®Ù>rWÿBÅ3þ,Á1åAB%ëÈÝ£BϱS—^UCÊ™43F­£BÅ3þ,Á1Þ…… 2\28304*…uªƒƒPC…B!! w } ‰+þULŽ“K! w ˆ |+04ª‚ w 4 w } 4 w! Š ˆ! Š ~ }422 f T / T>•6-î-Ïj@Aãõ1·ó7AÆP6QÏõîûC·ÅZ�QFåC©; È(:óìDpÔ‹´ËÙ0ABsMÊ�]pÄZDx%U³îXl@¢ùƒnND'8(3þSþ;û�Ó� B@6"+�Óû6ù®'¬3­p8(3þÓ�ªK22Ð å$((<((þbô4((û�S(L(O h…PEþ AP7@80(–P( "Ä n- 8078(3ýÓ�!ìBBBB3øÓ�"3ý;ùž F@6P7ú�#ú ‚À0IÇú@07(\( -'X7H88IÒ’úÀ*ïúÀŸúÀîJÒ@(887<((Óû6ßP7ú�#ú ‚À0IÇú@07(\( <((ûð$((üæ)Œ)Œ)�) �) �) �0:@Z`z8(3ùÅ3øÓ�B FþKó@63ý)o9pX7Ò�"Ò ‚À8IçÒ@87�¥X7H88IÒ’úÀ*ïúÀŸúÀîJÒ@(887Ó6ã8(3ýX7Ò�"Ò ‚À8IçÒ@87)E¥3úÓ�–"Cþ"ŠP¦P‚PCÿ!;3ú–#ÿÆC#þŠP¦P‚P–(T(;ýÓ�û� B@6"+�Óû6ù4((!–8(#Äé…;ûû�C8(!�X(O4((Ó�"8(;üû�C"8(î A`6 ÂoÔ  ŒÔP  Œþ#Ǫ ÷f?F‹QfX�1,Â)+H6)*�H7…Ó*¤À7Ó66ø)é� ä!ê‚ Ù " Œ9öÀ®P®P¶P–9ÝúÀ)Ù®P®P¾P)Ö¾ÝÊ‹�!„0!‘D  Œ¥   ŒH-H. <�H"  t‚  " ŒWsX6 " Œ9ö6°X6 " Œ6Û�X6#€  ‚K n) �ü1–v!ü!ÿ!ò#+1S1S1S386C…86þOžC…PCKSO Ž�#X9! Y89ZP9Ë!øæ‚Pƒ " Œ89ó" *1k p<937 q<9K8!09 ZOX937+9… p893 '? ŒOX93 ? Œ1 Ï­P89KÐÇ1Å……PCO@X9!ß YP8Ê89!¼æ‚Pƒ " Œ08" *10 p092 '? Œ!É ZOH9X8ÕP)!� ÓÁÒÀ(:¥ …@:-¶)�%Ž%ƒ�  ? Œ% •`¬P¶-¶Ó�þzŒ(98ge@?86X93)ü… p893 '? Œ 0)¥‚P893+ ? Œ89X6 ‹‚  n%/"Ó5*ªZ"*:X8úœ:2! ¯H`‚:ú�Y:2`Õ Yÿ8ú `¿ú =øCKSò8Z9ò(J+Jûû@Z*® J8úœ‡H`‚ÿRELEASE2.10û þ`ÌRelease Notice RDS PASCAL  2.10 ENHANCEMENTS ============ 1) Facilities for separate compilation of procedures and functions have been implemented. See the update to the Programmer's Manual for complete details. 2) The standaþÚZrd procedures 'PACK' and 'UNPACK' have been implemented. 3) The compilers have an additional switch: "/C" for "Conformance". The switch is applied to the compiler: PX PASCAL/C or PX PASCALO/C The effects are to diþ“Vsable the recognition of (a) the RDS extension predeclared identifiers (such as 'DATE', 'PWROFTEN', etc), (b) the RDS extension reserved words 'STRING' and 'SEGMENT', (c) the RDS extension directives 'EXTERNAL' and 'ASSEMBLER', and (c) all commentþQÓ switches (for example, '$R-' will not have the effect of turning off the generation of rangechecking code). The purpose of the "/C" switch is to aid you in writing programs which are as portable as possible. 4) Non-local 'GOTO's have been implemenþ$pted. It is now legal (as required by the proposed standard) to 'GOTO' a label declared in an outer block. 5) Rangechecking code is now generated for the 'CHR', 'SUCC' and 'PRED' functions. For 'CHR' the check is that the argument is in thþNƒe range 0..255. For 'SUCC' and 'PRED' the generated code will check that an expression does not represent a value of an ordinal type beyond the declared range of that type. This is especially important for enumeration types. For exampþÔ^le:  type day = (mon,tue,wed,thu,fri,sat,sun); : secondtuesday := succ(pred(mon)); If rangechecking is enabled (the default condition) this statement will cause a runtime error since the intermediate result of "pred(mon)" yields a result which þ�is outside the range of type "day". 6) The overlays for the overlaid compiler 'PASCALO' have been moved from the separate file 'PASCALO.PO' into the main P-code file 'PASCALO.PX'. Therefore, there is no longer a '.PO' file shipped with the release. Relþ­pease Notice RDS Pascal: 2.10 Page 2 WARNINGS ======== 1) Both the compiler error message file ("PASCAL.ER") and the runtime error message file ("PASINTERP.ER") have been changed. Make sure that the new revisions get installed along with the new þ@Putilities. 2) Due to the implementation of non-local 'GOTO' (as required by the standard) the 'EXIT' procedure is no longer required. 'EXIT' will not be supported as of release 3.00. Until 3.00 is released, 'EXIT' will be supported in addition to þ‚Ô'GOTO'. All new programs should use 'GOTO' instead of the non-standard procedure 'EXIT'. Old programs will have to be converted if they are to run under 3.00. 3) Because of a change in the internal overlay mechanism and the elimination of þ:vthe '.PO' file when using the overlaid compiler 'PASCALO', the current overlaid compiler cannot be used with an older interpreter and vice versa. 4) The standard releases (other than Evaluation Releases) include an interpreter for the miþg±nimum equipment configuration of the host operating system. For AOS users, this standard interpreter is configured for a 'basic' Eclipse with no options or extended instruction sets. Users of the RDOS/DOS system, however, receive þÕ¬a standard interpreter 'PASINTERP.SV' which is configured for a Nova 1200 with no options! If you are using a Nova/3, Nova/4 or an Eclipse you should run the PASCALGEN utility as soon as possible. The details are in the Programmer's Manual. Evþf¸en AOS users will benefit from generating an interpreter which takes advantage of all available hardware and firmware. Release Notice RDS Pascal: 2.10 Page 3 FIXES ===== -----------------------------------------------------------------------þ¾ž- #77: INTERPRETER 2.01 (All versions) 4 August 1980 If a WRITE is issued to an unopened TEXT file, no runtime error is issued unless the data is 'forced' out by a WRITELN, READ or >132 chars of output text. Workaround: Open TEXT filþ;íes using REWRITE. Status: Fixed 12 August 1980. ------------------------------------------------------------------------ #76: COMPILER 2.01 (All versions) 4 August 1980 INTEGERs are not coerced to REALs when appearing as expressions in a WRITEþ”«(,) statement. Since WRITE is defined in terms of an assignment followed by a PUT, the INTEGER should be converted to a REAL as part of the assignment. Workaround: Use explicit assignment and PUT. Status: Fixed 11 Auguþ]÷st 1980. ------------------------------------------------------------------------ #75: COMPILER 2.01 (All versions) 4 August 1980 A WRITE() statement where no variable "OUTPUT" has been declared generates bad code. The compiler should flagþžŸ this as erroneous. Workaround: Properly declare INPUT and OUTPUT. Status: Fixed 11 August 1980. ------------------------------------------------------------------------ #74: COMPILER 2.01 (All versions) 4 August 1980 If OUTPUT is declared asþÕÄ FILE OF INTEGER or FILE OF REAL then the statement "WRITE()" is not flagged as erroneous. If INPUT or OUTPUT are used by default, they should be of type TEXT. Workaround: INPUT and OUTPUT must be of type TEXT. Status: Fixed 11 AuþÙÜgust 1980. ------------------------------------------------------------------------ Release Notice RDS Pascal: 2.10 Page 4 ------------------------------------------------------------------------ #73: INTERPRETER 2.01 (All versions) 5 August 1980þ�C An explicit GET() immediately following a RESET() does not cause the file buffer variable to contain the second character of the file. The first character is retained. Workaround: None of adequate safety. Status: Fixed 12 Augusþ't 1980. ------------------------------------------------------------------------ #72: INTERPRETER 2.01 (All versions) 24 July 198 The runtime error message "Non-Positive Dividend in MOD Operation" should read "Non-Positive Divisor in MOD Opeþù€ration". Workaround: None required. Status: Fixed 12 August 1980. ------------------------------------------------------------------------ #71: PASCALGEN 2.01 (RDOS only) 3 July 1980 The CLI command file "CLI.CM" is being used if running in theþ\� foreground where "FCLI.CM" should be used. Workaround: None. Use background for PASCALGEN. Status: Fixed 13 August 1980. ------------------------------------------------------------------------ #70: COMPILER 2.01 (All versions) 1 August 1980 Thþ®¶e compiler erroneously accepts a procedure declared as both SEGMENT and ASSEMBLER. Workaround: None required. Status: Fixed 6 August 1980. ------------------------------------------------------------------------ #69: COMPILER 2.01 (All versions) þ;º 1 August 1980 The compiler will not accept "WRITE(,)". Workaround: Assign the to a <variable> of the same type and use "WRITE(,)". Status: Fixed 5 August 1980 ------------------------þáÃ------------------------------------------------ Release Notice RDS Pascal: 2.10 Page 5 ------------------------------------------------------------------------ #68: COMPILER 2.01 (All versions) 22 July 1980 The compiler generates bad code fþš or "WRITELN()" where "OUTPUT" has not been declared explicitly or as a program parameter. The results at runtime are not predictable. (Note: This may be related to Bug #65). Workaround: "OUTPUT" must be declared explicitly or aþvçs a program parameter if it is to be used as the default file in "WRITE" or "WRITELN". Status: Fixed 6 August 1980 ------------------------------------------------------------------------ #65: COMPILER 2.01 (All versions) 17 July 1980 Iþ=Úncorrect code is generated for the sequences 'WRITE()' and 'WRITELN()'. The program will not execute correctly and will not provide reasonable runtime diagnostics. Workaround: Use 'OUTPUT' explicitly before the ''. Status: Fixeþ×d 4 August 1980 ------------------------------------------------------------------------ #64: INTERPRETER 2.01 (All versions) 16 July 1980 If a program whose P-code filename is of the form 'aa.PX' is run using only the first two characters ('PXþˆ¹ aa'), the interpreter will not append the '.PX' suffix and the host system will attempt to open the file 'aa'. Workaround: Specify 'PX aa.PX' (Use the explicit suffix). Status: Fixed 16 July 1980. -------------------------------------------------------þ†ˆ----------------- #63: INTERPRETER 2.01 (AOS only) 14 July 1980 If '@NULL' is opened as a typed (non-TEXT) file, AOS returns "System Call Parameter Error". The interpreter performs an ?FSTAT call once a typed file is opened in order to dþ òetermine the file size. ?FSTAT uses an AOS channel number as input. AOS assigns octal 100 as the channel number for @NULL, but ?FSTAT will not accept that channel number as legitimate. Workaround: None. Status: Fixed 12 August 1980. ----------þTt-------------------------------------------------------------- Release Notice RDS Pascal: 2.10 Page 6 ------------------------------------------------------------------------ #62: INTERPRETER 2.01 (All systems) 3 July 1980 The ROUND function þ]=is being improperly performed by always adding '0.5' then TRUNCating. (For negative arguments '-0.5' should be added). Workaround: User written ROUND function which adds or subtracts '0.5' (as appropriate) followed by TRUNC. Status: Fixed 6 July 198þó 0. ------------------------------------------------------------------------ #61: COMPILER 2.01 (All versions) 3 July 1980 There is a spurious compiler error generated when the first argument of a WRITE or WRITELN contains a colon (':'). IþðFn other words, when the file is implicitly 'output' and the first (or only) argument contains format specification information. Workaround: Use 'output' explicitly. Status: Fixed 3 July 1980. ----------------------------------------------------------þ`Ñ-------------- #60: INTERPRETER 2.01 (All versions) 30 June 1980 Comparisons ('=', '<>') of arrays or records with more than 127 elements or words will crash the interpreter. The runtime symptom is not determinable. Workaround: Use þF explicit user-written element-to-element and field-to-field comparisons. Status: Fixed 1 July 1980. ------------------------------------------------------------------------ #59: COMPILER 2.01 (All versions) 20 June 1980 There is no runtþé§ime check code generated for the SUCC and PRED functions. Workaround: None required. Status: Fixed 20 June 1980. ------------------------------------------------------------------------ Release Notice RDS Pascal: 2.10 Page 7 -----------------þN------------------------------------------------------- #58: COMPILER 2.01 (All versions) 20 June 1980 There is no runtime check code generated for the CHR function. Workaround: None required. Status: Fixed 20 June 1980. ------------------------þ(Ù------------------------------------------------ #47: COMPILER 1.03 (All versions) Compiler crashes when processing declaration of a PACKED ARRAY when (<#_of_elements> + <#_of_elements_per_word>) > MAXINT. Workaround: None Status: Fixed 20 June þqå1980 ------------------------------------------------------------------------ #45: COMPILER 1.03 (All versions) The compiler is permitting assignment from a string to a PACKED ARRAY [n..m] OF CHAR where "n <> 1". This is non-standard. Workaround: þ_àNone required. Status: Fixed 18 June 1980. Under control of /Conformance switch. ------------------------------------------------------------------------ #44: COMPILER 1.03 (All versions) The compiler is not checking/enforcing the implementation restþûÍriction of 32K bytes of local data per procedure causing the compiler to crash if it attempts to compile a procedure exceeding this limit. Workaround: None. The limit must be 'manually' observed. Status: Fixed 18 June 1980. --------------------------þqL---------------------------------------------- Release Notice RDS Pascal: 2.10 Page 8 ------------------------------------------------------------------------ #43: COMPILER 1.03 (All versions) If an ARRAY is declared with close to MAXINT elements þuZ the compiler crashes. Workaround: None. Status: Fixed 20 June 1980. ------------------------------------------------------------------------ #38: COMPILER 1.02 (All versions) 7 March 1980 If limit value in FOR loop =MAXINT the loop will not þuÈexecute properly. Program will crash in unpredictable manner. Workaround: None. Status: Fixed 5 August 1980 ------------------------------------------------------------------------ #37: COMPILER 1.02 (All versions) 7 March 1980 If control  variaþSSble in FOR loop appears in the limit expression improper code is generated causing an incorrect number of iterations of the loop. Workaround: Use temporaries to keep control variable out of limit expression. Status: Fixed 5 August 1980. þæà------------------------------------------------------------------------ #29: COMPILER 1.01 (All versions) The compiler is erroneously accepting "FILE OF TEXT". The code generated produces unpredictable results at runtime. Workaround: Pascal þ- TEMP", (d) creating a new contiguous file: "CREATE/ELEM=/TYPE=UDF ", (e) copying the old random file to the new continguous one: "COPY/A TEMþ$ÑP", and finally deleting the old file: "DELETE TEMP". Under RDOS and DOS this can be done by (a) renaming the file temporarily: "RENAME TEMP", (b) copying the file to a contiguous file: "XFER TEMP /C", and (c)þìîÕ deleting the old file: "DELETE TEMP". 2) Under AOS you can use the new LINK utility (rather than BIND) to generate new interpreters via the PASCALGEN utility. Simply edit the "PASCALGEN.CLI" macro supplied with the release. ÿRELEASE2.11û?? þîRelease Notice 14 October 1980 RDS PASCAL 2.11 Note: Release 2.11 is a minor update to Release 2.10. Please refer to the files "RELEASE2.10" and "MANUAL2.10" for information regarding the major changes made in Release 2.10. ENHAþì–NCEMENTS ============ 1) We have optimized input from text files which are neither devices (such as CRT keyboards) or IPC ports (AOS only) as follows. If a program executes a 'GET(f)', and 'f' is not an interactive device, the interpreter wiþ}äll read an entire line of text into its internal buffer. Successive 'GET(f)'s will, therefore, not require system calls until the buffer is again empty. As this is done only for non-interactive textfiles opened for input (via 'RESET') yourþ9† programs should not require modification. The optimization manifests itself in 'textbook' programs which often use single-character 'GET' or 'READ' for non-numeric input from a text file. 2) A helpful feature has been added to the cþ%’ompilers (PASCAL and PASCALO) and the PLINK and PINFO utilities. If they are executed with only the character '?' (question mark) as an argument, they will display their accepted and required CLI arguments. For example: ) px plink ? PX PLINK[þßÁ/L][/V] program [directory/D] [interpreter/I] [listing/L] This facility will be added to the PASCALGEN utility and others in future updates of RDS Pascal. 3) The PLINK utility will now provided progress information when executed with the /þÏÄV (verbosity) switch such as: PX PLINK/V FUNGAMES The output (which is similar to that generated by the compilers) shows what routines are being bound together to build the program '.PX' file. 4) The compilers will now output information showing whaþ8Çt options were in effect during a compile. The options include use of the overlaid compiler (PASCALO), use of the swapping mode (/S switch), and use of the /N (no-code) and /C (conformance) switches. Release Notice RDS Pascal 2.11 Page 2 WARNINGþ�$S ======== 1) Both the compiler error message file ("PASCAL.ER") and the runtime error message file ("PASINTERP.ER") have been changed. Make sure that the new revisions get installed along with the new utilities. 2) The standard releases (other thaþ—ˆn Evaluation Releases) include an interpreter for the minimum equipment configuration of the host operating system. For AOS users, this standard interpreter is configured for a 'basic' Eclipse with no options or extended instructionþÊ# sets. Users of the RDOS/DOS system, however, receive a standard interpreter 'PASINTERP.SV' which is configured for a Nova 1200 with no options! If you are using a Nova/3, Nova/4 or an Eclipse you should run the PASCALGEN utility as soon aþ(s possible. The details are in the Programmer's Manual. Even AOS users will benefit from generating an interpreter which takes advantage of all available hardware and firmware. 3) Due to the implementation of non-local 'GOTO' (as requiþÎ�red by the standard) the 'EXIT' procedure is no longer required. 'EXIT' will not be supported as of release 3.00. Until 3.00 is released, 'EXIT' will be supported in addition to 'GOTO'. All new programs should use 'GOTO' instead of the non-standarþÝâd procedure 'EXIT'. Old programs will have to be converted if they are to run under 3.00. 4) Release 2.20 will not permit the use of non-local variables as control variables in 'for' statements. All programs making use of this non-standard deviaþCtion must be modified accordingly. 5) The 'Conditional Compilation' documented in the Programmer's Manual on Page 1-10 is not performed by the compiler as of release 2.11. 6) The compilers (PASCAL and PASCALO) and PLINK make use of temporary disk fiþXÞles. In order to permit more than one user to execute these utilities from within the same directory unique filenames are created for the current ground (RDOS) or process (AOS). On RDOS and DOS the format is: B$hh$mm$ss.WK (background) or þlRF$hh$mm$ss.WK (foreground) On AOS the format is: ?ppp.hh_mm_ss.TMP In both cases hh=hours, mm=minutes, ss=seconds (time of day). On AOS, ppp=PID (process id number). If the compilers or PLINK are aborted before completion they will not have the þtEopportunity to delete these temporary files. Therefore, you may, from time to time, find such files on your disk. We wanted to let you know where they came from. Release Notice RDS Pascal: 2.11 Page 3 FIXES ===== ---------------------------------þÆ×--------------------------------------- #86: COMPILER 2.10 (All versions) 24 September 1980 When tight for memory the compiler may hang or crash during its final phase. If using the /V switch, the user sees all procedures listed but never geþ±ts the error message summary list. Status: Fixed 3 October 1980. ------------------------------------------------------------------------ #85: PLINK 2.10 (All versions) 23 September 1980 PLINK may incorrectly bind a program file consisting ofþLJ separate Pascal modules. The program may or may not crash at runtime. The use of assembler procedures is not affected. Status: Fixed 30 September 1980. ------------------------------------------------------------------------ #84: COMPILER 2.10þöÉ (All versions) 19 September 1980 The compiler is accepting declarations of type SET [n..m] where 'n' is an integer less than zero. RDS Pascal does not support such sets. Status: Fixed 3 October 1980. Added new compiler error message #340: þç§"set may not contain negative element". ------------------------------------------------------------------------ #83: COMPILER 2.10 (All versions) 11 September 1980 There are complex problems regarding the declaration of FORWARD SEGMENTþŸ¿S. The compiler may crash or bad code may be generated. Status: Fixed 9 October 1980. ------------------------------------------------------------------------ Release Notice RDS Pascal: 2.11 Page 4 ---------------------------------------------------þAy--------------------- #82: COMPILER 2.01 (All versions) 8 September 1980 The compiler may crash or generate bad code while compiling REAL constants that have no explicit fraction. Status: Fixed 3 October 1980. ------------------------------þZ------------------------------------------ #80: COMPILER 2.10b (All versions) 5 September 1980 The compiler will not accept an excplicit directory specifier in the name of the source file. For example: PX PASCAL DIRECTORY:PROGRAM Status: Fixed þa% 9 October 1980. When compiling a program using an explicit directory specifier, the resulting .PU or .PX file will be placed in the current working directory. ------------------------------------------------------------------------ #79: COMþÄúPILER 2.10b (All versions) 5 September 1980 If a label is multiply defined the compiler may crash upon encountering the second (or later) definition. Status: Fixed 5 September 1980. ---------------------------------------------------------------------þ¶^--- #78: COMPILER 2.10b (All versions) 5 September 1980 The compiler is erroneously permitting READing into an element of a packed array of char. Bad code is generated. Status: Fixed 5 September 1980. (Appropriate error messages issued.) -----þo4------------------------------------------------------------------- #67: INTERPRETER (All revisions -- AOS only) 22 July 1980 *ABORT* When attempting to execute in less than 32 pages. Status: Fixed in AOS revision 3.12. ---------------------------þGÕ--------------------------------------------- Release Notice RDS Pascal: 2.11 Page 5 ------------------------------------------------------------------------ #35: INTERPRETER 1.02 (All versions) General problems if multiple files titled INPUT or OUþ^-TPUT are declared. Synchronization does not function properly and program may crash. Status: Fixed 7 October 1980. WARNING: AT RUNTIME, ONLY ONE FILE TITLED 'OUTPUT' WILL BE PERMITTED TO BE OPEN AT A TIME. -----------------------------------------------þsÈ------------------------- #33: COMPILER 1.02 (All versions) A GOTO in dead code which references a forward label causes the compiler to hang or crash. Status: Fixed 3 October 1980. WARNING: THE 'CONDITIONAL COMPILATION' DOCUMENTED IN THE PROGRAMMþÍER'S MANUAL ON PAGE 1-10 IS NOT PERFORMED BY THE COMPILER AS OF RELEASE 2.11. ------------------------------------------------------------------------ Release Notice RDS Pascal: 2.11 Page 6 KNOWN BUGS AT TIME OF RELEASE (2.11) =========================þÛ+=========== ------------------------------------------------------------------------ #88: COMPILER 2.10 (All versions) 9 October 1980 The /C (conformance) switch does not flag the comparison of records and arrays using "<>" or "=" as non-staþ4—ndard. (This is an RDS extension). Workaround: None. Status: To be fixed in 2.20. ------------------------------------------------------------------------  #87: INTERPRETER 2.10 (All versions) 8 October 1980 When accessing a file which is otherþ€è than a disk file (for example, an uninitialized disk unit) a program cannot perform a SEEK operation beyond the last record written since the file was most recently opened. If no records are written to the file, READs may continue until physical enþŠÑd of file is reached, but if one or more WRITEs has occurred since opening, then the physically (not chronologically) last record written is the last one which can successfully read. Workaround: If you want to READ records beyond those you've writtþten you can RESET the file. Status: Interpreter Development Informed 8 October 1980. ------------------------------------------------------------------------ #81: COMPILER 2.10b (All versions) 5 September 1980 The compiler is permitting non-local variþúUables to be used as control variables in FOR statements. Workaround: None required. Status: To be fixed in Release 2.20. WARNING: RELEASE 2.20 WILL NOT PERMIT THE USE OF NON-LOCAL VARIABLES AS CONTROL VARIABLES IN 'FOR' STATEMENTS. ALL Pþ\ÅROGRAMS MAKING USE OF THIS NON-STANDARD FEATURE MUST BE MODIFIED ACCORDINGLY. ------------------------------------------------------------------------ Release Notice RDS Pascal: 2.11 Page 7 SUGGESTIONS (2.11) =================== 1) Under AOS, RDOSþ† , and DOS access to contiguously organized files is more efficient than access to randomly organized files. All files written by Pascal programs will be random files. (Under AOS the element size is 4 blocks). Executable P-code files (with the ".PXþ³f" suffix) are, therefore, randomly organized. This includes the compiler files PASCAL.PX, PASCALO.PX. The performance of any program which uses segmentation (see Programmer's Manual, page 1-7) to any great extent can be significantly improþOäved by copying these files to contiguous files. Under AOS this can be done by (a) determining the LENGTH of the file (in bytes) using the FILESTATUS command, (b) computing the number of elements required to make the file contiguous by ELEMENTS := þgËLENGTH div 512, (c) renaming the file temporarily: "RENAME TEMP", (d) creating a new contiguous file: "CREATE/ELEM=/TYPE=UDF ", (e) copying the old random file to the new continguous one: "COPY/A TEMP", andþÔ^ finally deleting the old file: "DELETE TEMP". Under RDOS and DOS this can be done by (a) renaming the file temporarily: "RENAME TEMP", (b) copying the file to a contiguous file: "XFER TEMP /C", and (c) deletingþå¿Â the old file: "DELETE TEMP". 2) Under AOS you can use the new LINK utility (rather than BIND) to generate new interpreters via the PASCALGEN utility. Simply edit the "PASCALGEN.CLI" macro supplied with the release. ÿTEST.MCûÄÄ þv MESSAGE MESSAGE Attempting to execute the interpreter. MESSAGE If it doesn't respond with 'Interpreter OK' MESSAGE then you have a problem with the interpreter. MESSAGE PASINTERP INTERPOK MESSAGE MESSAGE Attempting to compile the source of the test programþÞ|³. MESSAGE PASINTERP PASCALO/S/V INTERPOK MESSAGE MESSAGE Attempting to re-execute using the newly compiled code. MESSAGE PASINTERP INTERPOK MESSAGE MESSAGE If you got another 'Interpreter OK' message, all is well. MESSAGE ÿPASCAL.PXûb? þvtFÆ œÔ6ž/”COMPILEROPSYSINICOMPINITSHOWERROCOMPFINIDECSEGMEBODSEGME Copyright (C) 1980 Rational Dataþ…* Systems¼ )' Rþ´ Æž Æ žÜÌÝÌÝ¢ šÝ¢ٚݢÇ€žÝ¢Ý£ ‚šÞšÞ¢‘Çÿ• ‚šÜž#Þù¡Ì¹Ìݢݣ •šÝ£ ÂÞû¿ÚÝ£ ª@Æž!­lÖ¥„óÏÖ¥„ó®¦&PX PASCAL[O][switches] sourcefile[.PA]ÏÖØÏÖ¥„óÏÖ¥„ó®¦switch meaningÏÖØÏÖ¥„ó®¦------ -------ÏÖØÏÖ¥„ó®¦þ4¬!/A analysis to @OUTPUTÏÖØÏÖ¥„ó®¦/A=afile analysis to afileÏÖØÏÖ¥„ó®¦!/C conform to standardÏÖØÏÖ¥„ó®¦/E=efile errors to efileÏÖØÏÖ¥„ó®¦/L listing to @LISTÏÖØÏÖ¥„ó®¦/L=lfile listing toþ�â lfileÏÖØÏÖ¥„ó®¦!/N no codefile createdÏÖØÏÖ¥„ó®¦"/S  swap compiler phasesÏÖØÏÖ¥„ó®¦"/V verbosity to @OUTPUTÏÖØÏÖ¥„óÏ­>Æž ÆžÚÌÛšÛ¢šÛ¢‘šÛ¢NšÚž#ÛüÌÆž!­2ئ abcdefghiª@ƤƤþblƤž ®®È¡4ß̹ÝÐÌØÝ�‚Â0Æݤø † Ž‚¿ØÝ�‚Â0Æݤø Ž‚¿ÝÞáöØÂ.¿ØÂ_¿ØÂ_¿ÖÎÌØÌÖÆ¦?pidÏÖÆØDÏÖÆ¦.TMPHÏÆª@ØÂ0Üd† Ž‚¿ØÂ0Ü † Ž‚¿ØÂ0Ü Ž‚¿­�* ÂÆÚª@ÖÆÎÆ&ž Æ( žÊ(Ì)Ê)Ì*Ê)¢ šÊ)¢ÙšÊ)¢Ç€žÊ)£ÆªÿÊ)£Æ¾‚¿Ê)¢Ê)£‚šÊ)¢þÍÇ€žÊ)¢Ê)£ ‚šÊ*šÊ*¢‘Çÿ• ‚šÊ(ž#Ê*ù¡Ì¹<Ê*ûÌ'Ê'‘á̹ÌÊ)¢Ê)£ •šÊ)£ ÂÊ'¿Ê'Å¡ ÛÊ)£ ª@¹Û¦ª@Æ&ž!­&Ê «‚V«‚W¥„ƦAOSª¥„½§‚V—Çœ ½«‚P«‚0«‚-®i®hÈ¡ÊiÌC¹ÊCÐÌC¥„¿ÊC¤ šÊCÊháöÖ¥‚ÕΓ¡ ÖÎ ž¹¥‚Õ?¯¡ÖÎ žÖ¦NÆÎ“«‚þ�ƒ,Ö¦SÆÎ“«‚0Ö¦CÆÎ«‚6‚ÌFÖÊFÆGΡ1ÆG¾á"ÆG¾³ÿ‹¡¥‚öÆG¾0•¤šÊF‚ÌF¹ôÖ¦AÆÎ¡WƦ¯¡ ÌE¹ ÌEÖ¥…uÆÏÖ¥…uÏ®i®hÈ¡)ÊiÌD¹ÊDÐÌD¥„¿ÊD¤¥„¿ÊD¤øÊEœ šÊDÊháòÖ¦LÆ"ΡSÆ"¦¯¡ Æ"¦@LISTª@Ö¥…÷Æ"ÏÖ¥…÷Ï®i®hÈ¡(ÊiÌD¹ÊDÐÌþ*eD¥„¿ÊD¤¥„¿ÊD¤øœ šÊDÊháðÖ¦EÆÎ¡_Ʀ·¡WÆÆ"¯¡ ÌE¹ ÌEÖ¥†yÆÏÖ¥†yÏ®i®hÈ¡)ÊiÌD¹ÊDÐÌD¥„¿ÊD¤¥„¿ÊD¤øÊEœ šÊDÊháîÖ¦VÆÎ¡P¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤ø¯¡ ¥„¿¤ šÖ¥‚þîÕÎ¥‚վš0Ö¥‚ÕÆh¥‚Õ¾•ÏÆh¦.PA¯¡¥‚ÕÖ¥‚ÕÆh¥‚Õ¾•ÏÆhª@¥‚ÕÌhÖÆh¥‚Õ@ÏÖÆh¦.PACÏÆhª@Ö¥‰w¥‚ÕÏÖ¥‰wϧ‚,¡Ö¥‚´ÎÖ¥†û¥‚´ÏÖ¥†ûÏ­ ŒîkÕ‰ئ abcdefghiª@ƤƤƤž ®®È¡4Þ̹ÜÐÌØÜ�‚Â0Æܤø † Ž‚¿ØÜ�‚Â0Æܤø Ž‚¿ÜÝáöØÂ$¿ØÂ$¿þMüØÂ$¿ØÌÖÆØ@ÏÖÆ¦.WKCÏÆª@¶¡ØÌÖÆ¦FÏÖÆØAÏÆª@¹ØÌÖÆ¦BÏÖÆØAÏÆª@­‘&Æ Ö¥„óÏÖ¥„ó®¦0PX PASCAL[O][switches] sourcefile[.PA] [options]ÏÖØÏÖ¥„óÏÖ¥„ó®¦switch meaningÏÖØÏÖ¥„ó®¦------ -------ÏÖØÏÖ¥„ó®¦!/þŠ+C conform to standardÏÖØÏÖ¥„ó®¦&/L listing to sourcefile.LSÏÖØÏÖ¥„ó®¦!/N no codefile createdÏÖØÏÖ¥„ó®¦"/S swap compiler phasesÏÖØÏÖ¥„ó®¦%/V verbosity to $TTO/$TTO1ÏÖØÏÖ¥„óÏÖ¥„ó®¦oþ/Ÿption meaningÏÖØÏÖ¥„ó®¦------ -------ÏÖØÏÖ¥„ó®¦afile/A analysis to afileÏÖØÏÖ¥„ó®¦efile/E errors to efileÏÖØÏÖ¥„ó®¦lfile/L listing to lfileÏÖØÏÖ¥„óÏ­p Æž ÆžÚÌÛšÛ¢Ç%"šÚž#Ûù¡¹ÛüÅÌÆžþì/!­2 ÌÌA®Z®È¡,Þ̹ÜÐ̲rÙ•¤ÜA•Àº¡ Û¡¹¹ÌÚÜšÜÝáöÛÌ­,H ÆتÿÖ¥„óÏÖ¥„󮀂ÆÏÖÊ€‚ÏÖ¥„󮀂ÏÖÊ€‚Ï ž­�:ÆتÿÖ¥…÷ÆÏÖ¥…÷Ï®€„®€ƒÈ¡0Ê€„Ì€‚¹Ê€‚ÐÌ€‚¥„¿Ê€‚¤¥„¿Ê€‚¤øœ šÊ€‚Ê€ƒÃ¡ö­+ƒ Z «‚V«‚W¥„þç3ƦRDOSª¥„½§‚V—Çœ ½«‚P«‚0«‚-®®È¡Ú̹ØÐÌ¥„¿Ø¤ šØÙáö² •¤•¤Aš² •¤•¤Hš² •¤•¤Iš² •¤•¤Pš² •¤•¤Qš² •¤•¤Xš² •¤•¤Yš² •¤•¤Zš¶¡Ö²€â¦FCOM.CMϹֲ€â¦COM.CMÏÖ²€âϸ²~¤²� øš²~þ„>¶�¾Çÿ˲~¶�‚¾ÇÿË„¡F¶‚¸¶cÅ¡ Ö¦(F)COM.CM file is too long.ÎÖ²€âϲ~¶¤²� øš¹ô­j5 z¸¸¶‚¸¸²~¶¾ˡ)¶‚¸²¶•¤¶²~¶¾¿¶‚¸¹ö¶‚¸²¶•¤¶¿®®È¡yÛ̹ØÐ̲~¶¾¸¶‚¸¸²þ1 Ø•ô¹ZþÖ}²r•¤LA•Àº¡Ö¦Duplicate listing files.Îֲؕ¤Î¹¬AL¹ÆŒ XØÚáê­j 1�Ñ�²r•¤LA•Àº¡ÖÌÖÆ¥‚Õ@ÏÖÆ¦.LSCÏÆÎ²r•¤NA•Àº“«‚,²r•¤SA•Àº“«‚0²r•¤CA•Àº«‚6²r•¤VA•Àº¡P¥„¿¤¥„¿¤øþبœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š¥„¿¤¥„¿¤øœ š­"ÎÖÆ€âÆ� ÏÖÆ€â¦CLIFILEÏÖÎ ÌÖÎÖÎÖÎÖÎ¥„¿¤ø¯¡ ¥„¿¤ š¥‚ÕÌ�!ÖÆ�!¥‚Õ@ÏÖÆ�!¦.PACÏÆ�!ª@Ö¥‰w¥‚ÕÏÖ¥‰wϧ‚,¡Ö¥‚´Î Ö¥†û¥‚´ÏÖ¥†ûÏÖÆ€âÏ­B   0ÌÙø ŽÌ­þº®ؾ®È¡3Û̹ÙÐÌØÙ¾³ÿÿþ‹¡ ØÙÂØÙ¾ •¿ÙÚáö­1 H®$ ®#È¡Ê$̹ØÐÌ¥‚öؤšØÊ#áöÖΫ‚<§‚<‹¡§‚<¹ ÖÎ ¹Öι ¬¹¹2Ö¥„ó®#ÏÖÊ#¦Wrong operating system.ÏÖÊ#Ï ž­q$ˆÚ–jvöV–ä ’~PNþ ê’ j²(þ&i‘Ì¥�AA•¤Ø‚šØ‚Ì¥�4ؤ¦AND ÐÑ¥�4ؤ¢'š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦ARRAY ÐÑ¥�4ؤ¢,š¥�4ؤ¢ š¥�BA•¤Ø‚šØ‚Ì¥�4ؤ¦BEGIN ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�CA•¤Ø‚šØ‚Ì¥�4ؤ¦CASE ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦CONST ÐÑ¥�4ؤ¢š¥�4ؤþ¢ š¥�DA•¤Ø‚šØ‚Ì¥�4ؤ¦DIV ÐÑ¥�4ؤ¢'š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦DO ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦DOWNTO ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�EA•¤Ø‚šØ‚Ì¥�4ؤ¦ELSE ÐÑ¥�4ؤ¢ š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦END ÐÑ¥�4ؤ¢ š¥�4ؤ¢ š¥�FA•¤þöFØ‚šØ‚Ì¥�4ؤ¦FILE ÐÑ¥�4ؤ¢.š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦FOR ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦FUNCTIONÐÑ¥�4ؤ¢ š¥�4ؤ¢ š¥�GA•¤Ø‚šØ‚Ì¥�4ؤ¦GOTO ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�HA•¤Ø‚š¥�IA•¤Ø‚šØ‚Ì¥�4ؤ¦IF ÐÑ¥�4ؤ¢š¥�4ؤþñî¢ šØ‚Ì¥�4ؤ¦IN ÐÑ¥�4ؤ¢)š¥�4ؤ¢ š¥�JA•¤Ø‚š¥�KA•¤Ø‚š¥�LA•¤Ø‚šØ‚Ì¥�4ؤ¦LABEL ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�MA•¤Ø‚šØ‚Ì¥�4ؤ¦MOD ÐÑ¥�4ؤ¢'š¥�4ؤ¢ š¥�NA•¤Ø‚šØ‚Ì¥�4ؤ¦NOT ÐÑ¥�4ؤ¢&š¥�4ؤ¢ š¥�OA•¤Ø‚šØ‚ÌþŒÒ¥�4ؤ¦OF ÐÑ¥�4ؤ¢ š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦OR ÐÑ¥�4ؤ¢(š¥�4ؤ¢ š¥�PA•¤Ø‚šØ‚Ì¥�4ؤ¦PACKED ÐÑ¥�4ؤ¢+š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦PROCEDURÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦PROGRAM ÐÑ¥�4ؤ¢!š¥�4ؤ¢ š¥�QA•¤Ø‚š¥�RA•¤Ø‚šØ‚ÌþøÀ¥�4ؤ¦RECORD ÐÑ¥�4ؤ¢-š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦REPEAT ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�SA•¤Ø‚š§‚6“¡,؂̥�4ؤ¦SEGMENT ÐÑ¥�4ؤ¢0š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦SET ÐÑ¥�4ؤ¢*š¥�4ؤ¢ š§‚6“¡,؂̥�4ؤ¦STRING ÐÑ¥�4ؤ¢3š¥�4ؤ¢ š¥�TA•¤Ø‚šØ‚Ìþ¼‚¥�4ؤ¦THEN ÐÑ¥�4ؤ¢ š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦TO ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦TYPE ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�UA•¤Ø‚šØ‚Ì¥�4ؤ¦UNTIL ÐÑ¥�4ؤ¢ š¥�4ؤ¢ š¥�VA•¤Ø‚šØ‚Ì¥�4ؤ¦VAR ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�WA•¤Ø‚šØ‚ÌþÁÉ¥�4ؤ¦WHILE ÐÑ¥�4ؤ¢š¥�4ؤ¢ šØ‚Ì¥�4ؤ¦WITH ÐÑ¥�4ؤ¢š¥�4ؤ¢ š¥�XA•¤Ø‚š¥�YA•¤Ø‚š¥�ZA•¤Ø‚š¥�Z‚A•¤Ø‚š­Ž¥‚ež§‚eÌØšØ¢šØ¢š¥‚dž§‚dÌØšØ¢šØ¢š¥‚cž§‚cÌØšØ¢šØ¢š¥‚bž§‚bÌØšØ¢šØ¢šØ¢š¥‚`ž§‚`þ&ÌØšØ¢šØ¢Ÿš¥‚až§‚aÌØ>‚C‚šØ¢šØ¢§‚cš¥‚_ ž§‚_ÌØ¢šØšØ¢šØ¢šØ¢§‚e𨢠𨢠𨢧‚cšØ¢š­ÞÆ žÙÌÛ¦INTEGER ÐÑÛ¢ §‚ešÛ¢šÖÙÓÆ žÙÌÛ¦REAL ÐÑÛ¢ §‚dšÛ¢šÖÙÓÆ žÙÌÛ¦CHAR ÐÑÛ¢ §‚cšÛ¢šÖÙÓÆ žÙÌÛ¦BOOLEAN ÐÑÛ¢ §þ뺂bšÛ¢šÖÙÓÆ žÙÌÛ¦TEXT ÐÑÛ¢ §‚ašÛ¢šÖÙÓÆ žÙÌÛ¢šÛ¦MAXINT ÐÑÛ¢ÇÿšÛ¢ §‚ešÖÙÓŸÌ®®È¡VÜ̹ÚÐÌÆ žÙÌÜ¢ §‚bšÚáܦFALSE ÐѹܦTRUE ÐÑÜ¢ؚܢښܢšÖÙÓÙÌÚÛáö§‚b¢ÙšÆ žÙÌÛ¦NIL ÐÑÛ¢ §‚`šÛ¢ŸšÛ¢šÛ¢šÖÙÓ­Šþu³Ž¥‚m ž§‚mÌئ ÐÑØ¢ ŸšØ¢š¥‚l ž§‚lÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢šØ¢š¥‚k ž§‚kÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢šØ¢šØ¢š¥‚j ž§‚jÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢šØ¢š¥‚iž§‚iÌئ ÐÑØ¢ ŸšØ¢šØ¢ŸšØ¢ šØ¢šØ¢šØ¢šØ¢šØ¢šØ¢šþOdØ¢š¥‚hž§‚hÌئ ÐÑØ¢ ŸšØ¢ŸšØ¢𨢠šØ¢šØ¢šØ¢šØ¢šØ¢šØ¢šØ¢š­XÆ€¨³ ` ½§‚6¡Æ€¨Æ€¨¼³1Ÿÿàœ ½Æ•¤¦READ ÐÑÆ•¤¦READLN ÐÑÆ•¤¦WRITE ÐÑÆ•¤¦WRITELN ÐÑÆ•¤¦EOF ÐÑÆ•¤¦EOLþ9›N ÐÑÆ•¤¦PRED ÐÑÆ•¤¦SUCC ÐÑÆ •¤¦ORD ÐÑÆ •¤¦SQR ÐÑÆ •¤¦ABS ÐÑÆ •¤¦NEW ÐÑÆ •¤¦FILETITLÐÑÆ•¤¦PURGE ÐÑÆ•¤¦CONCAT ÐÑÆ•¤¦LENGTH ÐÑÆ•¤¦DATE ÐÑÆ•¤¦EOLCHAR ÐÑÆ•¤¦þÜFSUBSTR ÐÑÆ•¤¦INDEX ÐÑÆ•¤¦MOVELEFTÐÑÆ•¤¦MOVERIGHÐÑÆ•¤¦EXIT ÐÑÆ•¤¦IDSEARCHÐÑÆ•¤¦TREESEARÐÑÆ•¤¦TIME ÐÑÆ•¤¦FILLCHARÐÑÆ•¤¦APPEND ÐÑÆ•¤¦REWRITE ÐÑÆ•¤¦PAGE ÐÑÆ•¤¦CLOSE ÐÑÆ þ}[•¤¦SEEK ÐÑÆ!•¤¦RESET ÐÑÆ"•¤¦GET ÐÑÆ#•¤¦PUT ÐÑÆ$•¤¦SCAN ÐÑÆ%•¤¦SIZEOF ÐÑÆ&•¤¦PACK ÐÑÆ'•¤¦UNPACK ÐÑÆ(•¤¦ODD ÐÑÆ)•¤¦CHR ÐÑ®€¬)®€«È¡}Ê€¬Ì¹ÙÐÌÙ³0�à‹ÌÙÆ€¨¼‹“¡RÚ¡Æ ž¹Æ þµ¥žØÌ€¬Ê€¬ÆÙ•¤ÑÊ€¬¢ŸšÊ€¬¢ ŸšÚ¡ Ê€¬¢š¹Ê€¬¢šÊ€¬¢šÊ€¬¢ÙšÖØÓÙÊ€«Ã¡ö­x¬ôÆ•¤¦PWROFTENÐÑÆ?•¤$𯕤¦MEMAVAILÐÑÆ?•¤šÆ•¤¦ROUND ÐÑÆ?•¤šÆ•¤¦TRUNC ÐÑÆ?•¤šÆ•¤¦SIN ÐÑÆ?•¤šÆ•¤¦COS ÐÑÆþ²�?•¤šÆ•¤¦LOG ÐÑÆ?•¤šÆ•¤¦ARCTAN ÐÑÆ?•¤šÆ •¤¦LN ÐÑÆ? •¤šÆ •¤¦EXP ÐÑÆ? •¤šÆ •¤¦SQRT ÐÑÆ? •¤šÆ •¤¦MARK ÐÑÆ? •¤ 再¤¦RELEASE ÐÑÆ? •¤!𯕤¦SYSCALL ÐÑÆ?•¤#š§‚6¡ džp ÌM¹þLÜ ÌMÌ®O®NÈ¡ðÊO̹ÜÐÌܹöÆ žØÌOÊO¢ §‚ešÊO¢š§‚d̹ôŸÌ§‚e̹~Æ žØÌOÊO¢ §‚dšÊO¢š§‚e̹a§‚d̹ZÆ žØÌOÊO¢ §‚`šÊO¢šÌŸÌ¹<Æ žØÌOÊO¢ §‚`šÊO¢š¹$¬¹‰nfM T:ÜÊM‹“¡[Ý¡Æ ž¹Æ žÙÌOÊOÆÜ•¤ÑÊO¢šÊO¢Æ?Ü•¤øšÝ¡ÊO¢þ.›š¹ÊO¢šØŸË¡Ø¢ŸšÊO¢ ÚšÊO¢ØšÖÙÓÜÊNáò­p–Oâ«‚8«‚[«‚Y«‚s«‚5«‚4«‚3«‚2Ÿ«‚f«‚U«‚T«‚S«‚1««‚QÇÿ«‚OÇÿ«‚NŸ«„Å«„W«‚G«‚r«‚q«‚F«‚E«‚.«‚D«‚A««‚?«‚>«‚=«‚+«‚*ÌÆ¾ë‚9ÆÂ¿ÆÂ0§‚;Ç膂¿ÆÂ0§‚;d† Ž‚¿ÆÂ0§‚; † þÁ"Ž‚¿ÆÂ0§‚; Ž‚¿®®È¡.Þ̹ÜÐÌ¥ƒ÷ܤÌÞ¢šÞšÞ¢¦ ÐÑÜÝáö¥‚pÇ‚ž¥„ÊÌÖÆ¦Copyright (C) ÏÖÆÆÏÖÆ¦ Rational Data Systems(ÏÆªP­y^¥ƒ³4 ½¥ƒ¥ƒ¼œ ½¥ƒ³|¥ƒ¼œ ½¥ƒ³t ½¥ƒ³ø ½þ”¥ƒ ³€ ½¥ƒ³t€ ½¥ƒ³ø ½¥‚  ½ ­  Ú•ÌÚÉ¡ Ú ‚ÌÙ•ÌÙd†ÌÙdŽÌÚ�• †Û‚قن‚܆‚Ü�•ŽÌ­B ÖØ®¦'Rational Data Systems Pascal Compiler [ÏÖØ®¦release ÏÖÙ¥„ÆÏÖÙ.ÏÖÙÏ ÖÙ.Ï É¡ÖØ®0ÏÖØ® Ï ¡Öþ„LØ®¦ , overlaidÏÖØ®]ÏÖÙÏ­š ÖØÏÖØ®¦line seg procÏÖÙÏÖØ®¦==== === ====ÏÖÙϧ‚gÌÖØ®§‚A‚Ï ÖÚ:ÏÖÚÙ£ Ï ÖÚÙ£ Ï ÖÚ ÏÖÚ¥‚tÏÖÚÏ­| Æت¶“¡ Ö¶® ,ϸֶ® ¦ /ÏÖÊ ÆÏ­ 6ÖØ®"ÏÖÛ¥‚ÕÏÖÛ"ÏÖÛ¦ cþÕfompiled on ÏÖÛ²ÏÖÛ ÏÖÛ§‚XÏ ÖÛ ÏÖÛ² ÏÖÛ ÏÖÛ§‚;Ï ÖÛ¦ at ϧ‚R š֨®§‚RÏ ÖÛ:Ï¹ÖØ®§‚RÏ ÖÛ:ϧ‚I š֨®§‚IÏ ÖÛ:Ï¹ÖØ®0ÏÖÛ§‚IÏ ÖÛ:ϧ‚@ Å¡ ÖØ®§‚@Ï ¹ÖØ®0ÏÖÛ§‚@Ï ÖØÏ̧‚-§‚6‚§‚,“‚§‚0“‚ÌÚÅ¡öÖØ® ¥‚Õ¾‚ÏÖÛ¦using the þoptionÏÚš֨®sϧ‚-¡ Ö¦ByteswapΧ‚6¡Ö¦ ConformanceΧ‚,“¡ Ö¦NocodeΧ‚0“¡ Ö¦SwappingÎÖØ®.ÏÖÛÏÖØÏ­ ˜ Ö§‚;§‚H§‚XÎ ¹q²¦Sundayª¹x²¦Mondayª¹i²¦Tuesdayª¹Y²¦ Wednesdayª¹G²¦Thursdayª¹6²¦Fridayª¹'²¦Saturdayª¹þ_Ŭ¹yl_QA2%§‚H¹ö² ¦Januaryª¹ô² ¦Februaryª¹ô² ¦Marchª¹ô² ¦Aprilª¹ô² ¦Mayª¹ô² ¦Juneª¹² ¦Julyª¹r² ¦Augustª¹c² ¦ Septemberª¹Q² ¦Octoberª¹A² ¦Novemberª¹0² ¦Decemberª¹¬ ¹½¯ ”ˆ~sh[K=.¥„¿¤ø‹¡1Ö¥…÷þZ Î Ö¥…÷Î Ö¥…÷®¦ line seg proc off nstÏÖØÏ¥„¿¤ø‹¡ Ö¥…uÎ Ö¥…uÎ ¥„¿¤ø‹¡Ö¥„óÏÖ¥„óÏÖ¥„óÎ Ö¥„óÎ ¥„¿¤ø‹¡ Ö¥†yÎ Ö¥†yÎ ­”µ Ç&‚«‚]Ç «‚K¥‚;¥‚H¥‚Xž%¥‚R¥‚I¥‚@ž ÖΧ‚,¡Ö¥†ûÏ«‚ZÖÎÖÎÖÎ «‚n«¥ƒ ¤ÌÊ¢šÊŸšÊ¢ŸšÊ¢ŸšÊ¢š«‚Bþ¬M«‚CÖÓÖÓÖÎÖÎÖÎÖÎÖΫ¥ƒ ¤ÌÊ¢šÊŸšÊ¢ŸšÊ¢ŸšÊ¢š¥‚gž§‚gÌÊ¢ŸšÊ¢êšÊ¦PROGRAM ÐÑÊ¢ ŸšÊ¢šÊ¢šÊ¢šÊ¢šÊ¢íšÊ¢šÊ¢šÊ¢ š¥‚x¦ declarationsª ï!áwÖÓï᥂t¥Ñ¥ƒ÷í¤¢¥Ñ¹ÖÓÖÓïá>ÖÓïá"ƞʢ¥Ñʧ„Śʫ„ÅÖÓþ„©ïË«¹«ì¡öïáÖÓ¹Ö)ÓïáÖÓ¹ÖaÓ¹F§‚6¡ÖÓ¹;«‚3«‚s«‚r«¥ƒ÷í¤ÌÊ¢šÊšÊ¢¦EXTERNALÐÑ¥‚tʢѥ„¿¤ø‹¡Ö¥„óÎ ¥„¿¤ø‹¡Ö¥…uÎ Æž ¥‚o ž§‚oÌÊ¢ŸšÊ¢šÊ§‚gšÊ¢ êšÊ¢§‚nšÊ¢éšÊ¢§‚sšÊ¢šÊ¢ Êš­ X^tLÎn¶\ ÀþZƒ ¨¢”xþþAŒÖØÏÖØÏÖØ®¦Error Message SummaryÏÖÙÏÖØ®¦===== ======= =======ÏÖÙÏÖØÏ­XÖØ®¶Ï ÖÙ ÏÖÙ²@ÏÖÙÏ­$ÖÆÆ@ ÏÖÆ¦ERMSGFILÏÖÆ¦ PASCAL.ERÏÖÆÏ§‚P„“¥„¿¤ø‹„¡Ö¥…÷Î¥„¿¤ø‹¡Ö¥…uÎ¥„¿¤ø‹¡Ö¥†yÎ¥„¿¤ø‹¡Ö¥„óÎþƒ;®aÇÿ®`È¡tÊa̹ØÐÌØ¥‚¼ ‹¡ZÖÆØÏ ÖÆÏ§‚P„“¥„¿¤ø‹„¡Ö¥…÷Î¥„¿¤ø‹¡Ö¥…uÎ¥„¿¤ø‹¡Ö¥†yÎ¥„¿¤ø‹¡Ö¥„óÎØÊ`áöÖÆÏ­va <þZ½ÖØÏÖØ®¦Segment NumberÏÖÚ¦ Segment NameÏÖÚ¦ Size (Bytes)ÏÖÚÏÖØÏ®®È¡>Û̹ÙÐÌ¥ƒ÷Ù¤ÌÛùË¡"ÖØ®Ù•Ï ÖÜÛ¢‚ÏÖÜÛø•Ï ÖÜÏÙÚáö­;šÆت@Æ&³ÿÿþ‡ÿÿþƒÿ@ ½Æ¾Ì$Ì%Ê$áÌ%¹ÆÊ$¾Æ&¼‹¡Ê$•Ì$¹Ì%Ê%¡öÊ$ƾɡÙÖÆÆ6Ê$‚Æþ‘v¾Ê$•ÏÆ6ª@¹Ù¦ª@­OT~ÆÙª@ØøÌ$ÖÆ$Æ@ÏÖÆ$¦ AÏÆ$ªÿØøØø¾Â¿ØØø‚š­B6Æ$ت@ÆÙª@ÆFž ÆEžÊEÌHÊH¢Ç€žÖÊH¢ÆÎÆGÊH¢¨§‚<á ÊH¢Çš¹ÊH¢šÊHšÊEž#ÊH¢ÆG¨ÊH¢Ç€žÖÊH¢Æ$Χ‚<á ÊH¢Çš¹ÊH¢šÊHšÊEž#ÆFž!­F–¥„¿¤ø‹¡#þÏ~Ö¥„óÏÖ¥„ó®§‚AÏ ÖÛ¦ linesÏÖÛÏ¥„¿¤ø‹¡#Ö¥…uÏÖ¥…u®§‚AÏ ÖÛ¦ linesÏÖÛϧ‚P„“¥„¿¤ø‹„¡#Ö¥…÷ÏÖ¥…÷®§‚AÏ ÖÛ¦ linesÏÖÛÏ¥„¿¤ø‹¡Ö¥…uΧ‚P„“¥„¿¤ø‹„¡Ö¥…÷ÎÆž Çÿ«‚M¥Çž«®®È¡ Ü̹ÚÐÌ¥ƒ÷Ú¤ÌÖÜùÓ ÖÜøÓ ÚÛáö®®È¡8Ü̹ÚÐþ¬Ì¥ƒ÷ڤ̮®È¡Þ̹ÙÐÌÖÜ¢Ù•Â¾Ó ÙÝáôÚÛáò®®È¡Ü̹ÚÐÌÖÓ ÚÛá𮥄ʾ®È¡Ü̹ÙÐÌÖ¥„ÊÙÂ¾Ó ÙÛáʾ‚®.®È¡Ü̹ÙÐÌÖÓ ÙÛáì®!®È¡Ü̹ÙÐÌÖÓ ÙÛáêÖ§‚;Ó Ö§‚HÓ Ö§‚XÓ Ö§‚RÓ Ö§‚IÓ Ö§‚@Ó Ö§‚<Ó ÖÓ Ö Ó ÖÓ ÖÓ ÖÓ ÖÓ Ö§‚FÓ ®®È¡Ü̹þz3ÙÐÌÖÓ ÙÛá观+¡ÖÓ ¹ÖÓ §‚*¡ÖÓ ¹ÖÓ Ö§‚ZÓ ëÇÉ¡ÖÓ ¹æ§‚,¡gÖ¥†ûÏ «‚Z«‚YÖÓÆž!¥‚¼ ·¡ Ö¥†ûϹ<Ö¥†ûϧ‚3§‚+�§‚*�¡ ¥‚Õ¥‚Õ¾ÂU¿¹ ¥‚Õ¥‚Õ¾ÂX¿Ö¥‚Õ¥‚ÕÎÖ¥‚´¥‚Õέ{®0Wwº¢çÐpØ®2 þþ¡ÞØÄØÈ„¡ÖØÓ ¹ÖGÇ€‚Ó ÖØÆÆÓÖÙÓ ÖÚÓ ­0ØÈ¡ÖØÓ ¹ÖÇ€ØÇ†‚Ó ÖØÇŽÓ ­(ÖØÇ€‚Ó Ø&á+óÌÖÚùÓ ®Úù®È¡Ü̹ÙÐÌÖÚ¢Ù•Â¾Ó ÙÛáö­BÖØÇ€‚Ó Ø3áxÌÌÙá̹ÛÈó¢Û•¤øÃ„¡Û‚̹öÚÛ•‚ÌñÝšÝÅ¡)ÖÝÓ Û®Ú®È¡ß̹ÜÐÌþ^#Öó¢Ü•¤øÓ ÜÞáô¹ë•«Ýá Ö󢕤øÎ¹cسÀ0$@‹¡ÖÙÓ ¹LØ'ÃÙÈ„¡ë•«ÖÇçÙ‚Ó ¹4ØJÃÙÈ„¡ë•«ÖÇ×Ù‚Ó ¹Ø#ÃÙÈ„¡ë•«ÖÇøÙ‚Ó ¹ÖÙέ”Ï ôØ@ÃØMÃ�¡ÖØÇ€‚Ó ÖÙÓ ÖÚÓ ¹Jس³€‹¡ÙáÖØ‚Î¹ÖØÙÎÙÅ¡ÖÚιÙá ÖØ‚ÚÎ¹ÖØÇ€‚Ó ÖÙÓ Öþ:&ÚέnÙÌÝù¡^ÖØÇ€‚Ó Ýúë••ÌÚÄÚÈ„¡ÖÚÓ ¹=ÝøÃ¡&ݧ„Wš§„WcáÖÇÿÓ¹§„W‚«„W¥„XÝø¤ÝúšÝø‘ÌÖÇøÝø•Ýø•Ó ¹'ÖÝúÆÆÓØ9á ëǂ̹ëÌÝ¢ÚšÖÜÓ ÖÛÓ ­”ÖÎ ñ§‚bË¡ÖÇÓÖ!ØÎ­ ØžØøÌÙ¢šÙšÙ¢Ç`mš­ ØÌÛúÌÛ¢šÛøË¡ þiÎ¥„XÛø¤ëšÛ¢ëš§‚7“¡6ÙÇ`mÉ¡/ÙÇÄ¡ ÙÇ•Ì9̹!ÌÙ«Öèë¾è낾ÆÓÖÚØÎ¹öÛú«­<j ñŸË¡ôò¹öñùÃñ§‚dË„¡Öóι ñ§‚`áÖιñ§‚dáÖ3ιÖ3ιZó¹3ôáÖ'õι Ö6§‚nô•õι-Ö#ôι&Ö:ι Ö<ñøÎ¹Ö>ι¬¹ ;% ¹¹¬¹ˆVñùÃòË„¡ÖñøÎþÁ« ­$ ´ ØÌÙøŸË¡[Ùú¹EÙûáÖ+Ùüι Ö8§‚nÙû•Ùüι;ÙûË¡ÖÇ.Ó¹Öι'Ö;ι!Ö=ÙøøÎ¹Ö?ι¬¹ M3!­lñŸË¡nò¹VÖñÓ¡Ö&ιÖÇ-Ó¹Mó¹.ôáÖ%õι Ö2§‚nô•õι$ôË¡Ö"ôô‚ιÖǾÓ¹¬¹6 ¹ ¬¹^K« « « ­þ W|ÜÌÊþ« « Ê£¹ö« Ê£ « Ê£ «¹ôÊ£ á Ö'Ê£ ιÖ6§‚nÊ£ •Ê£ Ϋ « ¹ô¥ƒ §¤ÌÊùá« Êú« ÊûÊ£ ‚«¹!§‚ná Ö'ÊúιÖ6ÊúΫ Ê£ « Ê£ ¡8ÖÎÊ£ ÃÊ£ Ã�Ê£ Ä¡« Ê£ áÖPι« ÖÊ£ Ê£ Î ¹AÊ£ Ë¡Öǖӹʣ“¡ÖÇÂÓ¹« Ê£ ‚« þEÕ«¹¬¹ æùÀ?ñŸË¡ñùÈñøÅ„¡ÖΫ 弄 ¼Æ¼œ‹“¡Ö;ÓÖ¥ƒ ¼Æ¼œ Ó弄 ¼‹¡ÜïáîÆ¥ ¨ÝŸË¡ÝùË¡ ÖÇŠÓŸÌÖÎÖÓÖÆ¼³œ ÎÖÎ ñŸË¡ ñùË¡ÖqÓÝŸË¡òÝÌÖÊúñÓ¡LÊúŸËÖÝÓ“„¡<ÖÊúÆ Æ Ó §‚D„“¡ÖÊ ÎÖÊ ÎÖÎÊ Ë¡ÖÊ €ÎÊ Å¡ÖιÖþ}ιÖÇ‹ÓÊû« « « « ñŸË¡LÊü¡3Êýá« ÖÝÓ§‚D„“„¡ÖιÖBι « Ö@ÊþÊýιÖ$ñøÎñùÈñøÅ„¡« ïË¡ðïáÖÓ¹ÖZÓ¹àïáæñŸË¡ñùË¡ Önjӟ« ÖÓïáèñŸË¡êÖñúÆ ÓÊ ŸÃ¡ ÖǘÓŸ« ¹ìÊ ÌÊþ« ó¹õÊ£ ‚«¹$ôÊ£ ‚« ¹ÖÇ,Ó¹¬¹ $Ê£ ¡8ÖÎÊþñÅ£ ÃÊ£ Ã�Ê£ Ä¡« Ê£ áÖPι« ÖÊ£ Ê£ Î ñŸË¡ñùÈñøÅ„¡ÖΫ ÖÓ¹Ö Ó¹âñŸË¡äñÌÊùÃÊùÃ�¡~ÊùáÖÎ « « « Êú« ¹Oñ§‚aáÖVÎÆ¥ ¨ÖÎ¥ ƨÖO Îó¹õ>‚«¹ô>‚« ¹ ¬¹ÖÎÊú« ñŸáÖÇ#ÓñŸË¡ñùÈñøÅ„¡« ¹ÖÇ�ÓÖÓïÆ¼¥ƒ ¼œ‹“þG�¡ÖEÓÖÆ¼¥ƒ ¼œ Ó¹Þ­Ì/16ÑÙàâ°ÏÉ2 #:Ì Ì ñŸË¡ óÃñùÅ�¡ÖÎÖñÓÌ Æ¥ ¨ÖÓÖÆ¼ Îòá ñ§‚cÃÖñÓ�Ì ñŸË¡ñùÈ¡ÖÎ ¹ÖÎÜŸËñŸË„¡ôñ§‚eáÖ§‚dÜÓ¡ Ö Î§‚d« Ì Ê ¡\Üÿ¡ ñ§‚cáÌ ¹LÜúŸË¡CÖÜúÆÆ Ó Ê Ê•‚Ì Ê ñ§‚cË„¡%ÖPÎÊ ñ£Ë¡þÄCÖÇ�Ó§‚6ÊË„¡ÖÇ@ÓÜ« ¹Ü« Ê “¡ÖÜñÓÌ Ê ¡öÜù¹o§‚D„“¡ÖÜüÎÖÜûÎÖÎÖÆÎ¹gÖ ÜøÎÖÆÎ¹ZÖÆÎ¹SÊ ¡"Üÿ¡ñ§‚cáÖ)ιÖ*ܣιÖQÊ Î¹Ö(ÜøÎ¹%Ö(ÜøÎ¹ÖÇ’Ó¹¬¹LxP_M!¹ÖÇîÓ­  ŠïáÖ ÆÓÖÓ¹ Ö$Ó§‚kÌÖÆ¼ ÜέþÍ^0Ö²¼"œ ÎÖÎñŸË¡ ñùË¡ÖÇßÓ¶¹Cïá#ÖÓÖ²¼ œ ÎÖÎ ñ§‚eË¡ÖÇàÓ¹ÖÇáÓÖO ιÖOιÖOι¬ #¹K­‚ƥѫ‚.Ø¡¥¦INPUT Ðѹ¥¦OUTPUT ÐÑÖ  ÆÓ«‚.¥ÆÑݟáØ¡ÖÇÎÓ¹ÖÇ3Ó¹cÝþ§‚aˡءÖÇÐÓ¹ÖÇ4Ó¹HÝÌþ’ŠÞ£á Þ£ á Ö%Þ£ ιÖ2§‚nÞ£ •Þ£ ιޣ á Ö'Þ£ ιÖ6§‚nÞ£ •Þ£ Î­ÄØêšÖÓê§Å¡ê«­ ñŸË¡gÖ§‚eñÓ¡ÖO ιVÖ§‚dñÓ¡ÖOιEÖ§‚cñÓ¡ÖOι4ÖñÓ¡'Öñ£ÎÖOζˡÖdzÓ¹ ïáÖDzÓ¹ÖÇâÓ­t!ïá1ÖVÎÖ6ØÎÖÓÖ²¼"þë6œ Îó‹¡ÖÇÀÓ¹ÖÎÖÎ!¹ö­8@"ÖVÎÖ²¼"œ ÎÆ¥ ¨ÖÎñŸÃ¡Ì¹ñ§‚aá̹ñùá̹Ìعöïá:ÖÆÎ Ö.ÙÎÖÓÖ²¼"œ Îó‹¡ÖÇQÓ¹ÖÎÖÎ!ÖÙÎ"ê•«¹ÖǮӹôÖÎÜ‹¡ÖÇRÓïáÖÆÎ Ö.ÙÎÖRÎÖÎ!ÖÙÎ"ê•«¹ÖRÎÖÎ!¹ôÖÆÎ Ö.ÙÎïá[ó¹õþ±m>‚«¹ô>‚« ¹ ¬¹ÖÎÖÓÖ²¼ œ ÎÖÎÖRÎÖñÚúÓ¡Ö(ñøÎ¹ÖǰÓÖ6ÙÎÖOιÖǸÓê•«¹¹¬¹ƒ¿­ X#¶¡öÖÆÎ ÖVÎÖ²¼"œ Îó‹ÌòáÖιÖÓÌñ§‚aáOïá ÌÖOι>Ö.ØÎÖOÎïá/ÖVÎÖ6ØÎÖÓÖ²¼"œ Îó‹¡ÖþÙpÇSÓ¹ÖÎÖÎ!¹&Ú¡ÖtÓÖVÎÖÎÖ.ØÎÖOÎÖ6ØÎÖRÎÖÎ!ÖØÎ"Ù¡ÖVÎÖ6ØÎÖOÎê•«¹ ÖVÎÖÎÖOέ ä$ñŸË¡ñùÉ¡ÖÎ ¹Öέ%ñÌïá+ÖÓÖ²¼&œ ÎñŸË¡ ñ§‚eË¡ÖǹÓÖΠ̹ÌÙ§‚dáGØ¡ÖÎïá,ÖÓÖ²¼"œ ÎÖÎ ÖÎñŸË¡ ñ§‚eË¡ÖÇêÓþz®¹ÖÎÖÎÖOιôÙ§‚eáØ¡ÖÎÖO ιöÙ§‚cáØ¡ÖÎÖOιnÙ§‚báØ¡ÖÎÖO!ιYÖÙÓ¡Ø¡ÖÎÖOιDÖÙÓ¡7¸ÙúŸË¡ÖÙú²²Ó ¶¶•‚¸Ø¡Ö¶ÎÖ¶ÎÖOιÖÇëÓ­ (&ïá#ÖVÎÖ6ØÎÖÓÖ²¼&œ ÎÖÎ%ÖÎ&¹ö­*2'ÖVÎÖ²¼&œ þÕ ÎÆ¥ ¨ñŸÃ¡Ì¹ñ§‚aá̹ñùá̹ÌعöÖÎïá,ÖÆÎ Ö.ÙÎÖÓÖ²¼&œ ÎÖÎ%ÖÎ&ÖÙÎ'ê•«¹ÖÇ Ó¹ôÖÎ%ÖÎÖÆÎ Ö.ÙÎÖÎ(ÖÎ&ÖÙÎ'ê•«¹ôÖÎÖÆÎ Ö.ÙÎïáRó¹õ>‚«¹ô>‚« ¹ ¬¹ñú« ñŸË¡ñùÈñøÅ„¡ÖΫ Ö²¼ œ ÎÖ6ÙÎÖOιÖÇ2Óê•«¹¹þÒÚ¬¹Ù}¡­ ,)¶¡öÖÆÎ ÖVÎÖ²¼&œ ÎÌñ§‚aá5ÖÎïá ÌÖOι!Ö.ØÎïáÖÓÖ²¼&œ ÎÖÎ%ÖÎ&¹ÖÎ%ÖÎÖ.ØÎÖÎ(ÖÎ&ÖØÎ'Ù¡ÖVÎÖ6ØÎÖOÎê•«¹ ÖVÎÖÎÖOέ ¢*ñŸË¡bñùË¡ÖsÓ¹Vñ§‚dáÖÇ5Ó¹Gñúç‚D„“„¡%¶áÖÎÖþF¸ÎÖñü•ι ÖÎÖñüÎÖÎÖζáÖιÖέp1¶£ áÖVζÌßÿÌߣ á ߣ Ë¡ÖÇ+Ó¶£ ö£Ä¡.¶þŸÃ¡Öι ® ¶þø®È¡Ê ̹ÞÐÌÖÎÞßáöïáìٟáÖ~ÓÖÓÖ²¼"œ ÎñŸËÙŸË„¡ðÙþÌÚŸË¡òÙ£áôñùÈ¡qÖÚÓñ§‚cÄòÄ¡ÖÇ€&‚Ó ÖÓ ÖóþÈ/Ó §‚_« ¹ÖÎ ÚùáÖ ÚøÎ¹6Úùç‚D„“„¡ÖÚüÎÖÚûÎÖιñ§‚eÃÖÚ§‚dÓ„¡ Ö Î§‚d« ¹CÖñÓòÄÌÖÎÛÖÚÓ„¡,Úÿ“¡'ÖPÎÚúŸË¡ÖÚúÆÆÓ ÜÝ•‚ñ£Ë¡ÖÇŽÓÚ« ¹Hòá=ÖÎÖñÓÖÚÓ„¡ñ£Ú£É¡ÖÇ¿ÓóáÖgÓÚùá ñøÚøË¡ÖÇÓ¹ÖÇšÓÖÚñÓ“¡ÖÇÓÙŸË¡ÙÿÌïË¡îïáþiØÖÓ¹Ö(ÓÙŸË¡ÖÇíÓ¶Ìߣ á Öߣ ι*ߣ íá ÖNߣ ιߣ á ÖSߣ ι ÖMߣ ߣ ζþ« ­R¶rtÍÐ 42Ü£ áðÌÜ£ ÌÞ³ð``‹¡ÖVÎÞ³`‹¡ÖÎïáÖÓ¹Þ³@t‹¡Ì¹Ö ÓÞ³€‹¡ÖƼ"œ ÎÖÎ Þ¹ôÖÎ#¹òÖÎ$¹òÖÎ)¹òÖÎ*¹òÖÎ1¹òñŸË¡ ñþ¹žùÄ¡ÖÇÔÓ§‚e« ¹òñŸË¡%ñ§‚eáÖιñ§‚dáÖι ÖÇÕÓ§‚e« ¹òñŸË¡%ñ§‚eáÖιñ§‚dáÖι ÖÇÖÓ§‚e« ¹òÖιòÖιòÖιòÖÆ¼ œ ÎÖ>Χ‚e« ¹òÖÎ+¹òÖιòÖÆ¼œ ÎïáÖÓ¹ÖÓÖÆ¼ œ ÎÖOΧ‚e« ¹òÖιò® ® È¡DÊ Ì ¹Ê ÐÌ ÖÆ¼œ ÎÖÎñŸË¡ ñ§‚þÎþeË¡ÖÇ×ÓïáÖÓ¹ÖǤÓÊ Ê Ã¡öÖÆ¼ œ ÎÖÎñŸË¡ ñ§‚eË¡ÖÇØÓÞáÖ%Î¹Ö Î¹òÖιòÖÎ,¹òÖιòÖιòÖιòÖÎ-¹òñŸË¡ ñ§‚eË¡ÖÇCÓÖÎÖΧ‚b« ¹ò§‚D„“¡ÖÎÖÇÿÎÖÎñŸË¡ ñ§‚eË¡ÖÇDÓ§‚c« ¹Z¬)¹RëèåâCEãåâÌ¢xu†tq]ZW*,)02*þßï6§©°¨¥±©«Hª§©¦‡ß¡ïáÖÓ¹ÖÓ¹ÖÎ2­vYÒñ§‚eá Ö Î§‚d« Øø§‚eá Ö Îا‚dš­*3ñ§‚dÃØø§‚dÃ�¡ÖØÎ3­4弄¼‹“¡Ö:ÓÖÆ¼¥ƒ¼œ ÓŸ« 弄¼‹¡æï¹ìÖ^ ÆÓÖÓÜ£áÖÆ¼ ÜΫ ¹'Ü£áÜÌÊþ« « ¥ Ê¢¨þê1¹ ÖÆ¼ ÜÎñŸË¡ñÌÊùáÊú« ¹ê§‚e« « ¥ ¥¨Öӹ꧂d« « ¥ ¥¨ÖÓ¹ê§á§‚c« ¹Æ žÊ §‚_¨ Ê ¢§šÊ « « ¥ ¥¨ÖÓ¹êÖÓÖÆ¼ œ ÎïáÖÓ¹Ö*Ó¹êÖÓÖÆ¼ Î7ñ§‚bËòË�¡ÖÎ ÖÎñŸË¡ñ§‚bË¡ ÖLJÓŸ« ¹ó„“« ¹êÖÓÆ ½ÌÆ žÊ ÌÊ¢ŸšÊšÊ¢šþïÊïá Ê « « ÖÓ¹îÖÆ¼³œ ÎñŸË¡òñùË¡ ÖLjÓŸ« ¹ôÖÊ úñÓ¡öÌÌ òÃóÈ„¡ ÌóÌ Ê Ì ëÌ ÖÎ ï#áHÖÓÌ ÖÆ¼³œ ÎÖÊ úñÓ“¡ ÖljÓŸ« Þ¡òÃóÈ„¡óÌ ¹ÖΠ̹ÖÎ Þ¡Ê «ÆÆ¼Ê Ê ”œ ½¹ÖÊ Îß¡ÖιÌÊ ¢ñšÊ « ¹ÖÇÓï˫쓡ÖÓì¡ðïþ9‡Ã¡ÖÓ¹Ö Óß¡1Ƽ·¡"§‚p¢Æ¼ ½§‚pš§‚p« « ÖÎ ÖΫ ¹§‚p¢Æ¼ ½§‚pš§‚p« « ¹U¬&¹N ð ¨"$&(*,.02468:<>@BD„HudïÆ¼‹“¡Ö@ÓÖÆ¼¥ƒ¼œ Ó¹è­!(ÒÏóõýZ7ÖÆ¼³€þ¿ œ Î7ï'áîÖΠƥ ¨ðÌ ÖÓÖÆ¼³€œ Î7ÖÎ ÜŸËñŸË„¡òÊ ¹öÖÆÎ4ܧ‚eÃñ§‚eÄ¡Öι/ܧ‚dÃñ§‚dÄ¡ÖιÜùÃÖÜñÓ„¡Ö ι ÖÇøÓŸ« ¹ôÖÆÎ3ܧ‚dÃñ§‚dÄ¡Öι ÖÇùÓŸ« ¹pܧ‚eÃñ§‚eÄ¡Öι ÖÇüÓŸ« ¹Rܧ‚eÃñ§‚eÄ¡Öι ÖÇþÓŸ« ¹4ܧ‚bÃñ§‚bÃ„Ì Ê ¡Öι ÖÇþÃïÓŸ« ¹¬¹ Ò‹.lP¹Ÿ« ¹ð­ $B6ï(Ãð`‹„¡ðáÌ ¹Ì ÖÓ¹Ì ÖÆ¼³œ Î6ñ§‚eáÊ áÖÎ Öι%ñ§‚dáÊ áÖÎ ÖÎ¹Ê Ë¡ ÖÇôÓŸ« ï(áðÖΠƥ ¨ðÌ ÖÓÖÆ¼³œ Î6ÖÎ ÜŸËñŸË„¡ôÊ ¹öÖÆÎ4ܧ‚eÃñ§‚eÄ¡Öι/ܧ‚dÃñ§‚þǾdÄ¡ÖιÜùÃÖÜñÓ„¡Öι ÖÇõÓŸ« ¹yÖÆÎ4ܧ‚eÃñ§‚eÄ¡Öι/ܧ‚dÃñ§‚dÄ¡ÖιÜùÃÖÜñÓ„¡Öι ÖÇöÓŸ« ¹0ܧ‚bÃñ§‚bÃ„Ì Ê ¡Ö ι ÖÇ÷ÓŸ« ¹¬¹¼u.¹Ÿ« ¹ò­ ‚5ÙúŸË¡ÖÙúÆÆÓ ÚÛ•‚Øø£Ë¡ÖÇñÓØÙš­,8ž§‚JÉ¡ž«‚JÖÆ¼þ;š³œ Î5ï)áìÖñÓñ§‚cÃ�òÄÌñŸË¡ñùÈ¡ÖÎ ¹ÖÎÆ¥ ¨ðÌ ÖÓÖÆ¼ Î5ÖñÓñ§‚cÃ�òÃ„Ì ñŸË¡ñùÈ¡ÖÎ ¹ÖÎÜŸËñŸË„¡îÊ á+ñùáÖÜñúÓ¡Ö Î¹ ÖÇïÓŸ« ¹ Öǂӟ« ¹ðÜñË¡ÖÆÎ4Ê¡ÖñÓ¡ñÿ“¡ ÖÎÖÆñÎ8¹Ê ¡ÖÜÓ¡Üÿ“¡ ÖPÎÖ¥ ÜÎ8Ê ÖÜÓ„ÊÖñÓ„�¡þ_ÒÌ̹ ÖÜñÓÌÜùÌÊ¡òÜøÌ Ê¹öܧ‚dáÌ ¹Ì ¹ôÊ Ç‹¡ÖǃÓÌ ¹ôÊ Ç ‹¡ÖÇ„ÓÌ ¹ôÌ ÖÜÓ¡vÜÿ¡UÖÜÓñ§‚cÄ¡Ì ¹Aܧ‚cÃÖñÓ„¡1ÖRÎÊ ¹ Ì ¹ Ì ¹Ì ¹ Ì ¹¬ ¹Ì ¹Ì ¹Ì ÜúŸË¡ÖÜúÆÆÓ ÊÊ•‚Ì ¹Ê Ç‹¡ÖÇòÓ¹4Ê Ç‹¡ÖÇóÓÌ ¹ ÖÇþ¾¤…ÓÌ ¹¬¹ðãÑ¿0Ê ¹<Ö5Ê Ê Î¹FÖ4Ê Ê Î¹<Ö1Ê Ê Î¹2Ö0Ê Ê Î¹(Ö7Ê Ê Î¹Ö/Ê Ê Î¹¬ ¹ D<*6$¹ÖÇðÓ§‚b« « ­ n…¨Ö²¼Ç@œ ØÎïá Ö²¼ Î¹Ö3Ó­0:Ö²¼Çœ Î9弄¼‹“¡öï˫쓡ÖÓì¡ôï áÖÓþйÖ^Ó­:< D=Ö²¼Çœ ÎÖÆÎ ÖÙÎ ï áÖÓ¹Ö4Ó§‚=‚«‚=Ö²¼Ç œ Î9§‚=•«‚=ï á2ÖÆÎ Ö9ØÎÖÙÎ ÖÓ§‚=‚«‚=Ö²¼ Î9§‚=•«‚=ÖØÎ ¹ÖÙÎ ­Š>Ö²¼Çœ ÎÖÎ ÖÆÎ Ö9ßÎñÌÙŸË¡ÙùËÙ§‚dÃ�¡ ÖÇ�ÓŸÌï áÖÓ¹ÖÓŸÌÖÆ Î ŸÌÖ²¼þåÜ ÆÆÓÙŸË¡cÖÙØÓ¡UÝÌŸÌÜŸË¡#ÜÌ Ê úÞÈ¡Ê úÞáÖǜӹ ÜÌÊ øÌ¹öÆžÚÌ Ê ÜšÊ ¢ÞšÊ ¢ëšÛŸÃ¡Ú̹ÛÚš¹ÖÇ“Óï˫쓡ÖÓì¡ôïáÖÓ¹ÖÓ§‚=‚«‚=Ö²¼œ Î9弄¼‹“¡ò§‚=•«‚=ÚŸË¡Ö9Ê Îï˫쓡ÖÓï Ãì�¡ðÖßÎ ÝŸË¡vÝúÌ ÝÌŸÌÜøÌÜÝšÜÌÛÌܟáîÝúÌ Ö,þάÎÖÊ Ó ÖÊ Ó ëÌ Ö9Ê ÎÝÌ Ê úÊ Å¡ÖëÊ •Ó Ê ‚Ì ¹ìÖëÊ ù•Ó Ê øÌÊ ÇÿÉ¡Ê ‚Ì ÝŸÃ¡êÖÊ Î ï áÖÓ¹Ö]Ó­ON€vÖwT Ô?ÖÆÎ ÖØÎ §‚=‚«‚=Ö²¼Çœ Î9弄¼‹“¡öï˫쓡ÖÓì¡ô§‚=•«‚=ï áÖÓÖ²¼ ÎÖØÎ ¹Ö5Ó­QS l@ÖÆÎ ÖÙÎ Ö²¼@œ þmÎÖÆÎ ÖØÎ ïáÖÓ¹ÖǼÓ§‚=‚«‚=Ö²¼ Î9§‚=•«‚=Ö9ÙÎÖØÎ ­\AêÌ ê‚Ì Ö�Óê§Å¡ê«ÖÆ Î ÖÆ Î ÖÆ Î ïá[Ö  ²Ó¶ÌÊþÌÌÊ£áÌÊ£ ÌÊ£ ̹ ÖÇ›ÓŸÌØŸË¡ØùÅÖ§‚dØÓ�¡ ÖÇ�ÓŸÌÖÓ¹ÖÓÖ²¼ÇÀAœ ÓïáaÖÓÖ²¼ÇÀœ ÎñŸþfQË¡GñùË¡ÖÇÓ¹9ÖØñÓ¡+ÖÎ ØŸË¡Øùç‚D„“„¡ÖØüÎÖØûÎÖÎÖ.Ê Î¹ÖǑӹÖÇ»ÓÖ²¼ÇÀœ ÓïÇ€‹¡oïáH̹DÌïÌÖÓÖ²¼@œ ÎñŸË¡GñùË¡ÖÇÓ¹9ÖØñÓ¡+ÖÎ ØŸË¡Øùç‚D„“„¡ÖØüÎÖØûÎÖÎÖ.Ê Î¹ÖÇ Ó¹Ö7ÓÖ²¼@œ ÓïáÖÓ¹Ö6ÓÖÞÎÖ!Êþ�Š ÎÖ6Ê ÎÖÆÎê•«Ö9Ê ÎÖÊ Î ¥ ƨÖÎ ßáÖPιÖÎÖÎÖÆÎÖÊ Î §‚=‚«‚=Ö²¼ Î9§‚=•«‚=¥ ƨÖÎ Ö6Ê ÎÖCÎÖ!Ê ÎÖÊ Î ê•«­@BÌÌïáÖ ÆÓÖÓ¹ Ö'Ó§‚kÌÖ²¼Bœ ØÎñŸË¡yñùámé É¡`é‚«Ú‚Ì¥ƒ é¤ñúšó᥃ é¤ÌÛ¢šÛ¢ôšÛ¢õšþ¹-ÖÎÖ8êÎ¥ƒ é¤ÌÛ¢šÛ¢êšÖÓÙ‚Ìê§Å¡ê«¹ÖÇÓ¹ÖÇÓï˫쓡ÖÓì¡öïáÖÓ¹ÖǽÓ§‚=‚«‚=Ö²¼ Î9§‚=•«‚=éÚ•«êÙ•«­ð þCž§‚JÉ¡ž«‚Jï"ádéÌ¥ƒ ݤùˡݕ̹ö¥ƒ ݤüÌÞŸË¡*ÞÌ Ê ù§áÊ ûù¡ÖÇ¥Ó¹ÖÊ ûÎ ¹¹Ê ú̹ôÖÇ ÓÖÓïáÖþ7KÓ¹Ö0ÓïÆ¼œ‹“¡ÖHÓÖÆ¼ Ó弄¼œ‹¡òÆ ž ïá&Ö| ÆÓÖÓÜ£á ÖÆ¼ ÜιÖÜÎ:¹IïÌÖÓß¹(ÖÎ=¹;ÖÎ?¹6ÖÎB¹1ÖÎ;¹,ÖÎ>¹'ÖÎ@¹"ÖÎA¹ÖÎC¹¬¹0/0/Æ ž!ïÇ&‹“¡ÖIÓÖÆ¼ Ó­# @9«‚7ÖÎD¥ƒ é¤û‚«„W؟á!¥‚t¦??----??ÐÑ¥‚þÿx¦??----??ª ¹ð¥‚tØÑ¥‚x¦bodyª •ÌØ£áØþŸÃ¡Ú‚Ì¹ÚØþø‚ÌØÿÌ Ê ŸË¡òÊ ÌÊþŸË¡öÊ£ákÊþùÅ¡YÚ‚ÌÖ2Ê£ ÎÖ6ÚÎÖÊþÓ¡2ÊþÌÊÿ¡ Ö*ʣιÊúŸË¡ÖÊúÆÆÓ ÖQÝÞ•‚ι¹Ö(ÊþøÎ¹ÚÊþø‚̹ Ê£áÚ‚ÌÊÿÌ ¹ô§‚A«‚>ê«¥ƒ é¤üÌÜŸË¡ÖܢΠÜûÜøšÜúþ/c̹îŸÌ ŸÌ §‚nç„ÅŸË„Ì ¥ƒ é¤úÌ Ê ŸË¡æÊ ÌÊþÌÖVÎÖ2Ê£ ÎÖ2Ê£ >‚ÎÊþ§‚aáÖιÖÊúøÎ§‚nË¡ÖιX§„şáÖιK§„Ţʯ¡;ʦINPUT Я¡Ê Ì ¹Ê¦OUTPUT Я¡Ê Ì §„Åø«„ÅÖιÖÎÖOÎÖVÎÖ2Ê£ ÎÖÇ€&‚Ó ÌÊÊ•¾ áʕ̹ìÖÊÓ ®Ê®Èþ»¾¡Ê̹ÊÐÌÖÊÊ•Â¾Ó ÊÊáêÖOÎÊÿÌ ¹èÊ ¡ ÖVÎÖOÎÊ ŸË¡ÖVÎÖ2Ê £ ÎÖÎÖOÎÊ ŸË¡ÖVÎÖ2Ê £ ÎÖÎÖOÎÖ²¼Çœ Î9弄¼‹“¡äï˫쓡ÖÓì¡âï áÖÓ¹Ö ÓëÌ¥ƒ é¤úÌ Ê ŸË¡!Ê ÌÖVÎÖ2Ê£ ÎÖÎÖOÎÊÿÌ ¹àØþŸÃ¡Ö-ιÖ-ØþøÎ¥ƒ é¤üÌÜŸË¡$ÜÌþÝõÊûÌÊù“¡ÊúÇ`mË¡ÖǨÓÊú̹ާ„W•Ìë„¡ÖÓ ßÅ¡Ö륄Xߤø•Ó ß•Ì¹Ü؟á Ö§•Ó ÖÓ ¹ØÌÖ§Ê£•Ó ÖÊ£•Ó §Çÿ?Å¡ÖÇ7ÓÖëÙ•Ó ÖëÓ Ö§‚sÓ Ö§‚nÓ §‚8“¡«‚8¥ƒ÷í¤¢§‚ZšÖÓÇÿë•§‚?É¡ÖÇAÓ¹§‚?ë‚«‚?Æ ž!¥ƒa§‚s¤§‚?•š­­è.tv½Êä²#"þúã*̧‚2§‚0„¡ ÖÆ¼ Í¹ò«‚5««‚Q«‚=Ö¥ƒ é¤øÓ ïáÖÓ¹ÖÓÖ§‚oøÎï§‚o£ ÃÌÜ“¡-§‚o£ áÖÓ¹ÖÓÖÆ¼§‚o£ —œ Óï§‚o£ ÃÌÜ弄¼‹�¡öÜ“¡§‚o£ áÖ`Ó¹Ö<Ó̹Bï˧‚3§‚nÄ�¡ÖÓ¹.ÖÓï³€‹¡ ÖÓïË̹Ö=ÓÖÆ¼ ÓÌݧ‚oŸÃ�¡ô­ߺþ”Õ ƒ|€ Æ ( š t …„ RL64ðl˜¸¾ø……… „„ „ z"„ VŽ¼Þ È"&"l"æ„ #„#Ò„„„„„„„$h&$ &0 Ú*r*ô,,Ž,´ƒ+n,Ü-v-ê.ä/,/ZŒˆDþÒ–ÇÿÙ€•Ú€ÉÙÉÚÉ„ÙÅÚÅ„�„¡Ì¹ÌÛÙÚ‚š­0Ùá̹ Ú€ÇÿÙ€†ÈÌÜ¡ ÌÛÙÚ�š¹Ì­.ݚ弄¼‹“¡ÖÓÖÆ¼¥ƒ¼œ Ó弄¼‹¡ìïáòéÌ ¥ƒ é¤ùˡ镫¹öÆžßÌʚʢšÊ¢šŸÌ Ì ÖÓïá=Æ žÊ ÌÊ¥ÑÊ¢ ßšÊ¢Ê šÊ¢Ê šÊ¢šÖÊ Óþ@›Ê ‚Ì Ê Ì ÖÓ¹Ö!ÓïÆ¼"œ‹“¡ÖFÓÖÆ¼"œ ÓïË¡ôߢÊ šß¢Ê šÊ «ïáÖÓ¹Ö,Ó¹îïáðÖ Æ ÓÖÓÊ £ánÆžßÌÊ ÌÊ¢ÊþšÊ¢šÖÊúÓ¡ ÖÇ”ÓÊ¢ŸšÊ¢Ê¢¨Êšï#áÖÓ¹ÖÓÖÆ¼ ÆÆ ÓߢÆ ¨ßúÞË¡ÖÇÃÓ¹Ê þÌߟˡÝßøš¹vÆžߢšÖƼ³þ~œ ÆÆ ÓÖÞÓ¡ ÖÇ ÓŸÌßÌÊ¢ÞšÊ¢Æ ¨Êšï#áÖÓ¹ÖǺÓÖÆ¼ ÆÆ ÓߢÆ ¨ßúÞË¡ÖkÓߟˡ7ßÌÊùá-ÊúŸË¡&Êú§‚dáÖÇ$Ó¹ÊüÊûÅ¡ ÖfÓÊ¢ÊüšÜßšïÆ¼‹“¡ÖGÓÖÆ¼ Ó¹ÜŸš­$Øqÿ1 nÌٟ˶„¡ôÙÌÝù¹kÙ§‚eËÙ§‚dË„¡8ÖÙÆÆÓ þ1)ÛÄ¡+ÌÚḹÇ@̸ÜÚÅ¡¶•¸Ü†Ì¹ö¹4ÖÝúΡÖÝúÆÆÓ Ú‚ÌÚÉ¡ÌÚ¸¹¬¹su2­N šÌØÌÖÚþΡ@¶¶‚Å¡¶ ‚¸ ¸ÌÚ¢¶ šÚ¢šÚ¢¶šÚ¢¶š¶¶‚¸¹/¶ ¶Å‚¸ ¸ÌÚ¢šÚ¢¶ šÚþŸË¡ ¶ Úþø‚¸ Ù¶ŸË„¡/¶ÌþôbÚ£ ¡%Ú£ áÚ¢š¹Ú£ ÈÚ£ È„¡ Ú¢šÚ¢š­¾²ž¶ÌÙ¢ŸšÙ¢ŸšÙ¢š¶¶šÖÓïáö¶¡² ž¹² ž¶ ÌÙ¢ ŸšÙ¢šÙ¢ŸšÙ¢šÌ«‚.Ö ² Ó«‚.¶ ŸÃ¡!̶ ¥ÑÖ¶ ÓÖÓïáÖÓ¹Ö8ÓïáXÖ ² Ó¶ þ¸¶ŸË¡;¶ùÈ¡/Ö§‚d¶Ó¡ÖÇÆÓþ·¶ ¢ ¶š¶¢¶ šØ¡Ö¶ ιÖnÓÖÓ¹Ö%ÓÖ²¼Çœ Ó¹Ö&ÓÖ²¼Çœ Ó¶¶ ¶Å‚šï áÖÓ¹ÖWÓŸ¸¶ ¸¶ ¸¶¸¶¸Ÿ¸ Ö²¼œ ² ²Ó¶úŸË¡Ö¶úþ¶ Ó“¡ÖoÓ² ž¶ ÌÙ¢¶šÙ¢¶ šÙ¢²¨Ù¢š¶ ¸¶ ¸ ï˫쓡ÖÓì¡ôïáþBJÖÓ¹Ö9ÓïáÖÓ¹ÖXÓï៸ ¹Ö²¼(œ ² ζ ¶Å¡¶ ¸¶¸¹¶ ¶ö¶Å„¡¶¸¶ ŸË¡%¶ ú¸ ¶ ¢¶ š¶ ¶ ¶Å‚š¶ ¸ ¹òïá%ÖÓï²¼œ‹“¡ÖNÓÖ²¼œ Ó¹Ö-Óï˫쓡ÖÓ¶¸ ¶¸ï Ãì�¡ð¶¸ ¶¸¶¢¶š­j’j»þS(È ŸÌŸÌŸÌï³ ‹“¡ÖÓÖÆ¼³ œ ÓïáðÞÌïáA¶¡Æ ž¹Æ žÊ ÌÊ¥ÑÊ¢ ŸšÊ¢ßšÊ¢šÊ¢šÊ ÌÖÊ ÓÖÓ¹ÖÓï‹“¡ÖAÓÖÆ¼³ œ Óï˫쓡ÖÓì¡öïáÖÓ¹Ö.ÓÖÆ¼³ œ ÆÆÎÊŸË¡ ÊùáÖlÓßÞË¡ßÌÊ¢ ÊšÖßÎßÌÊÿÌþnê¹ôÊ Ìïá)ÖÓï³ ‹“¡ÖÇ™ÓÖÆ¼³ œ Ó¹òŸÌÞŸË¡ÞÌÊÿÌ Ê¢ßšÞÌÊ Ì¹îïáÖÎ ¹ÜŸš­+08…4p² ž¶¶ š¶ ÌØ¢ŸšØšØ¢šÖÓïál«‚.Ö ² Ó«‚.¶ ŸÃ¡+² ž¶ ÌØ¥ÑØ¢ ¶ 𨢧‚fšØ¢š¶ «‚f¹#¶ þŸË¡¶ þùË¡ ¶ ¢¶ þš¹þ‘ÖÇÄÓÖÓ¹ÖÓ­  Ì弄¼‹“¡Ö ÓÖÆ¼¥ƒ¼œ Ó弄¼‹¡Þ弄¼‹¡ÖƼ ÜÝιàïáÖÎ ¹âï+á&ÖÓÌ弄¼‹“¡ÖYÓÖÆ¼¥ƒ¼œ Óï,áðÖÓïáÖÓ¹Ö ÓŸÌÊ¡Æ ž¹Æ žÊ ÌʢߚʢŸšÊ¡Ê¢šÊ¢šÊ¢šÊ ÌÖÆ¼³œ ÆÆ ÎþÜtßÊ šÞŸË¡7ÞùÈ¡(Þ§‚dá Ömӟ̹ާ‚eá ÖǕӟÌÊ ¢Þš¹ ÖÇÇÓŸÌï˫쓡ÖÓì¡öïáÖÓ¹Ö[Óï áÖÓ¹ÖTÓÖÆ¼ Æ Æ ÎÊ ŸË¡ Ê ùáÖÇÅÓÖÊ Î¡"ÊʂȡßÌÊ¢šÊ¢ ʆšÊ¢ ÊšßÌÊûÌÊ¢Ê šÊúŸË¡ôÖÊúÆÆÓ Êü¡;ÖÊÊ‘ÆÎ¡&ÖÊÆÎ¡ÊÊþ†ÊÊþŽþtÑË‚Ì ¹ÖÇKÓ¹ÖÇFÓ¹@ÖÊÊ‘ÆÎ¡-ÖÊÆÎ¡ÖÊ ÊÆÎ¡ÊÌ ¹ÖÇGÓ¹ÖÇHÓ¹ÖÇIÓÊ Çÿ?Å¡ ÖÇJÓÌ Ê È¡ ÖÇ'ÓÌ ÊÊ šßÌ ÞÌߟáò¹äï-áîÖÓéÌ é ɡ邫¥ƒ é¤ÌÊŸšÊ¢š¹ÖÇÓÌ ÌÖÆ¼…Çœ ÆÎÊ ÊÅ‚Ì Æ žÊ ÌÊ¢¥ƒ 餸šÊ¢ßšÊÊ šÊ¢šþwÊ «ï áÖÓ¹Ö_Ó¹æï*áìÖÓï áÖÓ¹ÖUÓÖÆ¼ ÆÆ Îߟˡ%ßùÅ¡ ÖÇÈӟ̹ߧ‚dÃß§‚eÃ�¡ÖrÓŸÌÆ žÊ ÌʢߚʢšßŸË¡4Ö߯ÆÓ ÊÉ¡ÖÇTÓÊÊ‚†šÇÿÊøÉ¡ ÊÇÿšÖǩӹʚ¹èï.áWÖÓÆ žÊ ÌÊ¢šÊ¢Ÿšï áÖÓÖÆ¼ ÆÆ ιÖVÓŸÌÊ ¢ߚߟˡßùþ!÷áÖÇ6ÓÊ >ßø‚š¹êï3á|ÖÓïË¡ÖÇ´Ó¹lÖÓÖÆ¼³œ ÆÆÓß§‚eá8ÊÈÊÇÿÅ�¡ ÖÇÓÌÆ žÊ §‚_¨ Ê ÌʢʚÊÊ‚†š¹ÖÇ€ÓïáÖÓ¹Ö\ÓÜÊ šïƼ‹“¡ÖJÓÖÆ¼ Ó¹ÜŸšÜøŸÃ¡Ýš¹ÝÜøøš­139;=?ÂP$a/ Êï"áY¥ƒ é¤ÌÚüÌÌØŸþ{œËÙ“„¡Øù§Ë¡Øú̹ ÌÖǦÓ¹öÙ“¡!ÆžØÌÛšÛ¢§šÛ¢ŸšÛ¢ÚüšÚ¢ØšÖÓ¹ÖÓï²¼ œ‹“¡ÖBÓÖ²¼ œ Óï˫쓡ÖÓì¡ôïáÖÓ¹ÖcÓ­¢� ¬ ïË¡ÖÓÖ²¼œ ÓïáôÆ žØÌÛ¥ÑÛ¢ ŸšÛ¢ŸšÛ¢šÖÓï)Ãð Ä¡ÖÓ¹ÖÓÖ²¼œ ÆÆÓÖØÓØ¢ þ¡ٚآƨïá%ÖÓï²¼œ‹“¡Ö?ÓÖ²¼œ Ó¹ÖbÓ¹ö­� ¬ ïË¡Ö"ÓÖ²¼œ ÓïáòÆ žÚÌÝ¥ÑÝ¢ ŸšÝ¢šÖÓï)Ãð Ä¡ÖÓ¹ÖÇ—ÓÖ²¼œ ÆÆÎÖÚÓÚ¢ Ûš§‚fÌÙŸË¡+ÙÚ¯¡Ùþ¢ÚþšÙ§‚fˡآÙÿš¹Ùÿ«‚fÙÌÙÿ̹öïá%ÖÓï²¼œ‹“¡ÖKÓÖ²þ>r¼œ Ó¹ÖvÓ¹ô§‚fŸË¡ ÖÇÒÓŸ«‚f­Éx ê ŸÌïá/Æ žÚÌÝ¢šÝ¥ÑÝ¢ٚݢ ŸšÝ¢§‚nšÖÚÓÚÌÖÓ¹Ö#Óï²¼œ¥ƒ¼œ‹“¡ÖLÓÖ²¼œ¥ƒ¼œ Óï˫쓡ÖÓì¡öïáÖÓ¹Ö1ÓÙÌÖ²¼œ¥ƒ¼œ ÆÆÎÙŸË¡=ÙÌÝ¢ ۚݢêšÖÜÓÝÿÌÝÿŸÃ¡ ÛŸË¡Ûþb7ùáÝ¢¥ƒ é¤úš¥ƒ é¤¢Øš¹ôïá%ÖÓï²¼œ‹“¡ÖMÓÖ²¼œ Ó¹Ö|ÓïË弄¼‹“„¡ò§‚fŸË¡ ÖÇÓÓŸ«‚f­1”5 @ŸÌ êÌïÆ¼œ‹“¡ÖÓÖ²¼Æ¼œœ Óïáì¶¡ÖwÓÖÓï³@‹“¡ÖOÓÖ²¼!œ Óï³@‹¡ðïáÌ ÖÓ¹Ì ŸÌÌïáKÆ þ÷üžÊ ÌÊ Ã¡Ê¢š¹Ê¢šÊ¥ÑÊ¢ ŸšÊ¢ßšÊ¢§‚nšÖÊ ÓÊ ÌÊ‚ÌÖÓ¹ÖÓï²¼œ‹“¡ÖPÓÖ²¼.œ Óï˫쓡ÖÓì¡öÌ ŸÌ ïáNÖÓïá@Ö Æ ÓÖÓÊ þÌ Ê ŸË¡Ê Ã¡Ê ùáÖyÓ¹ Ê ùÈ¡Ê øÌ ÖÊÊ �Ó¹ÖÓ¹Ö/ÓŸÌ êÌßÌÞŸË¡"ÞÌ ÞÌÊÊ •Ìʢʚʢ Ê þ¼šÊÿ̹ôÊ ŸË¡ Ê ¢Ê šßÌ ï(²¼œ‹“¡ÖQÓÖ(²¼œ Óïá)ÖÓï²¼³@œ‹“¡ÖRÓÖ²¼!œ Ó¹òïá+ÖÓïÆ¼²¼œ‹“¡ÖCÓÖÆ¼²¼œ Ó¹Ö+ÓÝ¢ꚟÌÊ ŸË¡<Ê ÌÊÿÌʢޚʣáÊþŸË¡ÊþùÅ¡ Ê¢êšÖÊþøÓÊ ÌßÌ ¹îÜÞš¹ÜŸš­NŒ þv,†¶¡ ¶«¶«‚r¶ «¶ «¶ «‚n¶«‚s­.ØÌ¥„¿¤ø‹¡`Ö¥„ó®§‚A‚Ï ÖÛ:ÏÖÛÚ£ Ï ÖÛÚ£ Ï ÖÛ Ï®Ú£ ®È¡Ü̹ÙÐÌÖ¥„ó®¦. ÏÙÛáöÖ¥„ó®ÚÏÖÛÏ¥„¿¤ø‹¡`Ö¥…u®§‚A‚Ï ÖÛ:ÏÖÛÚ£ Ï ÖÛÚ£ Ï ÖÛ Ï®Ú£ ®È¡Ü̹ÙÐÌÖ¥…u®¦. ÏÙþBÕÛáôÖ¥…u®ÚÏÖÛÏ­)— èØ0áR§‚3¡ÖÇNÓïÌï³€‹¡ÖÓ¹ ÖÇ!ÓÌÌí̧‚q«§‚rÌ«‚r§‚8¡ÖÇ Ó«‚?«‚Y¹ÌêÌ «ê«‚Q«‚5ïáòÖ¥ƒ 餸ÆÓÊŸË¡FÊ£áÊ£ØÄÊ£ Ä̹ʣáÊ£Ø Ã„Ê£ Ä̹ÌÊ“¡ÖÇ Ó¹ÌÊ“¡öØáÆž¹Æþb^žÊÌÊ¥ÑÊ¢ ŸšÊ¢êšÊ¢šÊ¢šÊ¢ šÊ¢§‚nšÊ¢§‚ršÊ¢íš§‚3Ê£ ÄÊ£ Ä¡¥ƒ÷¤¢ÊÑ¥‚tÊÑÊ¡#§‚qÅ¡ÖÇÓ¹§‚q‚«‚q¥ƒ÷í¤¢¥Ñ§‚rǕáÖÇÓ¹§‚r‚«‚rØáÊ¢š¹Ê¢šÖÊÓ¹}ÊÿÌÊŸË¡DÊÌÊþŸË¡2Ê£¹Ê£ Êþø‚̹ʣ ‚̹ ¬¹ ÊþêšʫÊÿ̹ôÊ£ íË¡&Ê£ Ë¡ÖÇUӹʡ Ê£ ««‚r¹ÖÇ"ÓÖÓ¹ ÖÓ§‚i̧‚sÌÊ£ «‚s§‚nÌ §‚nÉ¡ §‚n‚«‚n¹ÖÇûÓéÌ é É¡7é‚«¥ƒ é¤ÌÊ¡ÊÊÿš¹ÊŸšÊ¢ŸšÊ¢ŸšÊ¢šÊ¢š¹ÖÇúÓÊÌØáÖ ÆÊÎÊ“¡Ê¢Êš¹ìÖ  ÆÊÎÊ“¡Ê¢ÊšïáîÖÓïá|Êþéî¡ÖzÓÖ ÆÓÊþÌÊ¢ ʚʟˡÊù‹“¡ ÖxÓÊ¢ ŸšÊþŸË¡ÊþøÌ¹ÌʢʣʂšÊÿÌʟˡʢʣ Ê‚šÊÿ̹ðÖÊÓÖÓ¹ÖÓÖ²¼œ Ó¹ Ê“¡Ö{ÓïáÖÓ¹ÖdÓïÃ¥¦FORWARD Я„¡BÊ¡ÖǡӹʢšÖÓïáÖÓ¹ÖpÓï²¼‹“¡ÖDÓÖ²¼ ÓÖιàïÃþ—¥¦ASSEMBLEЯ„§‚6“„¡èÊ¡ÖÇ1ÓÖÓïáÖÓ¹ÖSÓï²¼‹“¡ÖÇ ÓÖ²¼ Ó«‚+Æž ¥ÇžÇÿ«‚M«ÊŸË¡VÊÌÊ¢š®®È¡Ê̹ÊÐÌÖÊÊ•Â¾Ó ÊÊáêÊþŸË¡ ÖÊþøÓ ¹ÖÓ ÖÇÿÓ ÖÇþÓ Ö§‚nÓ §‚8“¡«‚8¥ƒ÷í¤¢§‚ZšÖÓÇÿë•§‚?É¡ÖÇBÓ¹§‚?ë‚«‚?¥ƒa§‚s¤þ®{§‚?•šÆž!ÖÊÎÖιâïÃ¥¦EXTERNALЯ„§‚6“„¡äÖÓïáÖÓ¹ÖǯÓï²¼‹“¡ÖÇÏÓÖ²¼ Ó«‚*Æž ¥ÇžÇÿ«‚M«ÊŸË¡<ÊÌÊ¢š®®È¡Ê̹ÊÐÌÖÊÊ•Â¾Ó ÊÊáæÖÇýÓ Ö§‚nÓ §‚8“¡«‚8¥ƒ÷í¤¢§‚ZšÖÓÇÿë•§‚?É¡ÖÇÑÓ¹§‚?ë‚«‚?¥ƒa§‚s¤§‚?•šÊ¡ÖþQ˜Ó Æž!ÖÊÎÖιPÊÌÊ¢šÊ¢ šÖÊÎ¥‚tÊÑ¥‚x¦ declarationsª Æž Ì Ȩ̂‚oÌ ¥‚o ž§‚oƨ ¸­VÓVæ×â2±¸\ÆÚÑÙøŸÃ¡Ì¹ZÙøÆ¯¡Ì¹LÙøÌ Ì Ê Ã¡!Ê ÿÌߟáÌ ¹߯¯¡Ì ¹ßÌ ¹öÊ á̹ÌÊ ¢ßÿšß¢ÙøšÙßš­GtÆÙÑþ„ȩ„ÅÌޟˡޢƯ¡¹ ¹ÞøÌ¹öÌ­ 4ÆÙÑÌ¥ƒ é¤úÌÞŸË¡ÞÆ¯¡¹ ¹Þÿ̹öÌ­ 6ØøŸË¡ŸÌØøÌØÙ𨸸ÌØøÚšØøÌٟáö­,ÆØÑÆ žÝÌÞÆÑÞ¢šÞ¢ §‚ašÞ¢§‚nšÞ¢êšÖ§‚aøÓÞ¢¥ƒ é¤úš¥ƒ é¤¢ÝšÖÝÓ­RÖ¦INPUT þ+éÐÎÖ¦INPUT ÐΓ„¡Ö¦INPUT ÐÎÖ¦OUTPUT ÐÎÖ¦OUTPUT ÐΓ„¡Ö¦OUTPUT ÐÎÖ¥„ÅΧ„ÅÌØŸË¡Ö¥ƒ 餢آΓ¡ÖÇ0ÓØøÌ¹öÖ¥„Åέ+ž§‚2§‚0„¡«‚2ÖÆ¼ Ó¹òÌïá§‚3§‚nÄ¡ÖÇLÓÖÓÖÎ ïáÖÓÖÎ ïáÖÓÖÎ ïá§‚3§‚nÄ¡ÖÇMÓÖÓÖÎþâT§‚nç‚3“„¡ÖÎï³€‹¡ ïÌÖÓÖÝιöïË¡弄¼‹Ü„“¡ÖÓÖÆ¼ ÓïÇ¥ƒ¼œ‹¡ô­¯Q ÒzÒ@zâ V D xü L<înˆV¼¬2f0þþ`§‚2§‚0„¡ ÖÆ¼ Í¹.ÖÆ¼ ÍÖÆ¼³ œÇ… Í§‚oŸÃ¡öÖÎ ­0NØÅÌÚÙÇØÇ€Ž�‚šÛ¡ ÚÚøÇÿ••š­(ÙÚá̹îÙŸÃÚŸÃ�¡Ì¹ðÙùÚùË¡'Ùùá ÖÙúÚÎ̹Úùá ÖÙÚúÎ̹̹òÙù¹ö̹ôÖÙúÚúÎ̹ôÙ§‚`ÃÚ§‚`Ã�̹xÖÙúÚúÎ̹lÖÙÎÖÚ΄“þס̹AÖÙÎÖÚ΄¡Ì¹/ÙúŸÃÚúŸÃ�¡Ì¹ÖÙúÆÆÎ ÖÚúÆÆÎ ÞÃÝÄÜÛÄ̹¬¹Ї}pf”–­ ôŸÌݚ弄¼‹“¡Ö2ÎÖÆ¼¥ƒ¼œ Î弄¼‹¡ôï%á?§á§‚c̹(Æ žÞ§‚_¨ Þ¢§šÞ¢ŸšÆ Ç‚žÊ §¨€‚Ê «Ý¥¨ÖιöÌ ï(Ãð`‹„¡ðáÌ ¹þprÌ ÖÎïádÖ ÆÎßÌ Ê þÌÝÊ ¢¨Ê Ë¡AÞ§‚eá Ê áÝÝø‘š¹-Þ§‚dá"Ê áÆ žÊ šÊ ¢Ýø¢¼’½ÝÊ š¹ÖiÎÖιTï"áÊ á§‘«§‚eÌÝ¥¨Öι5ï$á"Ê á §¢§¢¼’½§‚dÌÝ¥¨ÖιÖjÎÖÆ¼ ÎïÆ¼‹“¡Ö>ÎÖÆ¼ ÎÜÞš­  v¥ƒ 餸Ìڟá ¥ƒþ¸º 館š¹8ÚÆØžÌÛáÖeÎÙüŸÃ¡Ì¹ ÙüÆØžÌ¹öÛá٢ؚ¹Ù¢ ؚآ ŸšØ¢Ÿš­<dØŸË¡,ØÌÙ£`‹¡Ù£ áÙ£ á Ù£¡ÖuÎÖÙüÎ ÖÙýÎ ­: «§‚r•®®Ä¡6Ú̹̥ؕƒaؤøÅ¡Ö§‚?ë‚¥ƒaؤø•Î ¹ Ö¥ƒaؤøÎ ØÙáöÖíÎ Ö§‚r•Î Çÿë•§‚?É¡ÖÇEι ¥ƒ÷í¤þò¤§‚?낚ÖΫ‚?«‚8­k ˆ ë‚§‚MÅ¡ ÖÇýΫ‚7«èëÂØ¿ë‚«­( ë„¡ÖÎ ë‚§‚MÅ¡ ÖÇΫ‚7«ÖØÆÆÎ§‚9§‚-áèëÂÚ¿èë‚ÂÙ¿¹ èëÂÙ¿èë‚ÂÚ¿ë‚«­X ØÌÛùá ÙÛüšÚÛûš¹"ٚا‚cáÚÇÿš¹ØûŸË¡ÚØû£ š¹Úš­> ««‚4«‚Ÿ¥€—ÂÇÿþ©çž §‚1¡5Ö¥€—¥‚C¥ˆ9Γ¡#Ö¥ˆ9ϧ„¼«§�«�¥€—¥ªÿ§‚/«‚4«‚1¹Ö¥€—¥‚B¥‰wΓ¡ÖÇ/ÎÖ¥€—Î¥€—¾Çÿ•Å¡ÖÇέ†Ù¿ۢ|ÚøÂ¾§‚Wá̹dÛ¢|ÚøÂ¾¥„½¼‹“¡/ÙÂÙ¾‚¿ÙÙ¾ÂÛ¢|ÚøÂ¾¿ÚøÇÿÉ¡ÚÚø‚š¹ÖÛÏÚš¹öÛ¢|ÚøÂ¾«�ÚøÇÿÉ¡ÚÚø‚š¹ÖÛÏښ̭g †þ)êØ‚Çÿ?Å¡ ÖÇÚΫ¹êØ‚«­"§‚A‚«‚AÖÎÖÎîP ¥€—îž ‚«§‚5¡ê«‚Q¹ë«‚Q­4Ìî‚«¥€—î¾ Ë¡ö—¾Å¥€—î¾Æ¼‹“�¡Fî•«î‚«—¾Å¡Öιô¥€—)Ã¥€—î¾*Ä¥€—î¾}Ã�¡òî‚¥€—î¾*«Ì­C@q |ئªÿØÌÖÆØÇÿÏÖÆ¦ ÇÿÏÆªÿØþ|ùؾ¥€—î‚«—¾Å¥€—î¾ Ã�¥€—î¾}Ã�¥€—)Ã¥€—î¾*Ä�¡öî•«Ö ÎÌ­k� xÌÖ³@ Î¡ Ù¥€—î¾|ڹ̭6!ÌÖ³ÿ  Î¡H¥€—î¾-á,Ö³ÿ Î¡Ù¥‚ö¥€—î¾0•¤ø“š¹Ì¹Ù¥‚ö¥€—î¾0•¤øš¹Ì­jþ�„"¥€—î¾=áFÖÆÎ"ÌÙÖÆÎ!„¡ÖÆÎ"¡Û¡ÜÚ�̹Üڄ̹̹öÙ“¡ ̹ Ü¡+̹-̹¥€—î¾ÌÖ ÎÌ­R l §‚6“¡îÆ€‚³’’ ½Æ€’³@ ( ½Ö³ Î¡ðÖÆ€‚¼ Î¡ò¥€—î¾¹öÖÆ€’¼ Î¡ Ö¥‚[ÖΠιôÖÆ€’¼ Î¡ Ö¥‚PÖþ'ÜΠιôÖÆ€’¼ Î¡ Ö¥‚EÖΠιô§‚P„“¥„¿¤ø‹„¡Ö¥…÷ÏÖ Î̹ôÖÆ€’¼ Î¡ Ö¥‚DÖΠιôÖ!~” Î“¡¹ìÖÆÎ§‚1¡ÖÇ*ι쫂1Ö¥ˆ9ÆÏÖ¥ˆ9Ï«‚Cî«„¼¥¥€—ªÿ§�«�§‚4«‚/ÖÎÖÎ ž¹g¬Cr¹`ñ mèÓºš"$&(*,.02468:<>þ`Ï@1DFHJL­PR(VXú^Ú¹ Ö ÎÌ­¡ÐÌ€‚Ì€�Ê€‚¡î‚«î‚«Ê€�‚Ì€�—¾Å¡ ÖÇÊÎÖι)ÆÊ€�•Â¥€—¥€—î¾'áöÌ€‚¥€—'Ë¡ôÊ€�•Ì€�%«« Ê€�«Ê€�á Æ•¾«¹-§‚pÌ€ƒÊ€ƒšÊ€ƒ¢Ê€�šÆ•ÂÊ€ƒ¢•ÂÊ€�ž§‚p«­¨ ƒ þ=º#ÌÌ Ì Ì Ì Ç'ÌÇ'ÌîÌî‚«¥€—î¾0É¥€—î¾9Å�¡öî•Ì ¥€—î¾.áS¥€—.Ë¡GÌî‚«îÌ¥€—î¾³ÿ‹“¡ÖÇÉÎ¥€—î¾³ÿ‹¡î‚«¹ôî•Ì ¥€—î¾³ ‹¡\Ìî‚«¥€—î¾-á î‚«‘Ì ¹¥€—î¾+áî‚«îÌ¥€—î¾³ÿ‹¡î‚«¹òîþǽ•Ì Ê ÝÉ¡ÖÇÎØábÌß®Ê ®È¡JÊ̹ÛÐÌÜÇÿ †Ã¥€—Û¾0•Çÿ ŽÅ„ÜÇÿ †Å�¡ Ê ÌÖÇËÎ¹Ü �¥€—Û¾0•‚ÌÛÊáð"«« Ü«¹èÆнß®Ê ®È¡%Ê̹ÛÐÌÆÆ¼ Š�¥€—Û¾0•Šƒ½ÛÊáîÊ ®Þ®Ä¡+ÊÌ¹Û•ÌÆÆ¼¥€—Û¾0•ÛÞ•‚ž$‰‡ƒ½ÛÊáìÌ Ý®Ê ®È¡Ê̹ÛÐÌÊ �¥€—Ûþ~k¾‚0•Ì ÛÊáêÊ ‘áÆÆ¼Ê ž$‡½¹ ÆÆ¼Ê ž$�½$«« ²ž¶š¶¢Æ¼½¶«î•«­f Ñ8ëFj$¡0—¾È¥€—î¾ Ã¥€—î¾ Ã�„¡î‚«¹ô—¾È¡¹Öιò« /«¥€—î¾¹îÖÎ#¹ìÖÎ$¹ì¥¥€—¥�¥¥ ¥ž ¹ìÖιð¹ì¥€—*á î‚«Öι𹫹쫹쫹쥀—þ ¼î‚¾.á î‚«#«¹«¹ì¥€—=á î‚««¹«¹ì«¹ì«¹ì«¹ì«¹ì'«« ¹ì(«« ¹ì(«« ¹ì'«« ¹ì)«« ¥€—¹ « î‚«¹ « î‚«¹ ¬=>¹¹ì)« « ¹ì)«¥€—=á « î‚«¹ « ¹ì¬'{¹ìò×…Ø{×w "$&(*,.02Ô»‰ZT2À=?AþÑ=CEGIKMOQSUWY[]_acegikmoñlðürt}�ƒ…‡‰‹��‘“•—™›�Ÿ¡£¥§©«­¯Ÿï/áÖÇ)Îî‚«§‚[„¡¹ð­Ð  ,ØÉÌÛ¡ Ø‚Çÿ‚ÌÙØÇ†šÚØÇŽšÛ¡ÙÙøÇ€‚š­2ÌÙŸË¡Ùùá ÙüÙû§‚cÄÌ­"žþ±š§‚JÉ¡ž«‚J§‚4§‚P„“�¥„¿¤ø‹„¡öÖ¥…÷®§‚AÏ ÖÚíÏ ÖÚ§‚sÏ ÖÚ§‚QÏ §‚5¡ Ö¥…÷® Ϲ֥…÷®§‚=Ï ÖÚ Ï¥€—¾lÅ¡5Ö¥…÷®Ö¥€—ÆlÏÆÏÖÚÏÖ¥…÷®Ö¥€—Æm¥€—¾l•ÏÆÏ¹ Ö¥…÷®¥€—ϧ� áÖ¥…÷Ϲ֥…÷ϧ‚4¡ò¥„¿¤ø‹¡Ö¥…÷¦ERRORÎ%¥€—¾ ¥€—ž ÌÙ¥€—¾É¡E¥€—Ö¥þxŽ€—ÆÙ‚¥€—¾Ù•ÏÆªÿ®§‚Ÿ®È¡"Û̹ØÐÌ¥‚ Ø•¤¥‚ Ø•¤øÙ•šØÚáô¥„¿¤ø‹¡qÖ¥†y®¦Error at line ÏÖÚ§‚AÏ ÖÚ¦ in ÏÖÚ¥‚xÏÖÚ¦ of ÏÖÚ¥‚tÏÖÚ:ÏÖÚÏÖ¥†y® ÏÖÚ¥€—ÏÖÚÏÖ¥†y¦Î%¥„¿¤ø‹¡qÖ¥…u®¦Error at line ÏÖÚ§‚AÏ ÖÚ¦ in ÏÖÚ¥‚xÏÖÚ¦þîü of ÏÖÚ¥‚tÏÖÚ:ÏÖÚÏÖ¥…u® ÏÖÚ¥€—ÏÖÚÏÖ¥…u¦Î%¥„¿¤ø‹¡qÖ¥„ó®¦Error at line ÏÖÚ§‚AÏ ÖÚ¦ in ÏÖÚ¥‚xÏÖÚ¦ of ÏÖÚ¥‚tÏÖÚ:ÏÖÚÏÖ¥„ó® ÏÖÚ¥€—ÏÖÚÏÖ¥„ó¦Î%­™ùƒ ÈÚÌÚ“ÌØøÇ@ÄÙ^Ë„¡ÖÇιôÙ¹ØØø�Ü‚š¹öØØø�Û‚š¹xØØøþw•†š¹p¬+^¹h$  "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfv­ ¶é®®Ä¡IÝ̹ە̥ƒ Û¤øÌÚŸË¡,ÚÆ¥žáڣ؋¡¹k¹§‚.¡ÖÇÁιŸÌ¹ŸÌÛÜáö§‚.¡JÖhÎØ‹¡§‚m̹9Ø‹¡§‚k̹,Ø‹¡§þ†U‚j̹؋¡§‚l̹؋¡§‚i̹§‚hÌÙÚšÛ«­œ ²؟áÙŸš¹ ØÙ¥žË¡ÙŸš­ ïÆ¼‹“¡Öιö­ ÌÖÙΡÙÿÌ­Æ?©Æ ¿ؾšô ØÂ¾Ãؾń¡/ØÌÖÆ¦ ÏÖÆÖØÆ€„ؾ•ÏÆ€„ÇÿÏÆªÿ ØØ¾Â¾Ã¡ØØ¾Â ¿ÖØÆÏÌÙÅ¡eØþ¥hÌÖÆÖØÆ€„Ù•ÏÆ€„ÇÿÏÖÆÖ¦ Æ€„Ù•Ž•ÏÆ€„ÇÿÏÖÆÖØÆ€„Ù‚ؾٕÏÆ€„ÇÿÏÆªÿÖØÆÏ̹ö­n ÚÌëÌǧ‚Y•ÌÙÚÅ¡ÚÌèÛÂ¥‡9§‚YÂÙžÛق̧‚YÙ‚«‚Y§‚YÇÃØ�¡,¥‚¼ ¯§‚,„¡Ö¥†ûÏ«‚Y§‚Z‚«‚Z¥‡9ÂÇž ÚÙ•ÌÚáö­n|ÖÆ†ûƇ9ÇÏþEÖÆ†û¦WORKCODEÏÖÆˆ9ƈwÇÏÖÆˆ9¦INCLFILEÏÖÆ‰wƉµÇÏÖÆ‰w¦WORKSYMÏÖÆ„óÆ…1ÏÖÆ„ó¦OVTPVTÏÖÆ…uÆ…³ÏÖÆ…u¦ANALFILEÏÖÆ…÷Ɔ5ÏÖÆ…÷¦LPÏÖƆyƆ·ÏÖÆ†y¦ERRFILEÏ«‚:Ö¥„ó¦OUTPUTÏÖ¥„óÏÖÍÖÍÖ¥ƒ¼¥ƒ¼œ³ … Î§‚3¡ ïË¡ÖÇOι ïË¡ÖþhÔΧ‚A‚«‚AÖÎ¥‚¼ ·¡ÖÍÖͧ‚:¡ÖÎÖÍÖ¥†ûÏÖÆ†ûÏÖÆˆ9ÏÖÆ‰wÏÖÆ„óÏÖÆ…uÏÖÆ…÷ÏÖÆ†yÏ­G6 ´<~ƒƒ‚ |€ð.¬ F0œþ:`Ԣʀ¨4Àb��`�ÌHBpN'þþª§‚9§‚-á ٕؕ€ŽÌÌØÙ‚É¡M̮ٮȡÞ̹ÜÐÌÛÛ‚ÌÜÝáö®Ø®È¡#Þ̹ÜÐÌÚÛ‚ÌÛÇÿ†‚É¡ÛÛ‚ÌÜÝáô¹0‘̮ٮȡ#Þ̹ÜÐÌÚÛ•ÌÛÇÿ†‚É¡ÛÛ‚ÌÜÝáòÖÚέ$Xv ¬ þþTåÖÆ¼ ÎÖñÓòÃñ§‚cÄ�¡FòáÖι:òá5ñ§‚cá+§‚pÌܚܢšÜ¢•Âó¿§‚p« ¥ žñ§‚_¨ ñ¢šÖιñŸË¡ÖÇçÓ§‚_« ­zþþ±ßÖ²¼"œ ÎÖΟÌÌÌñŸË¡)ñÌÝùáÝúŸË¡ÝúÌÞøÌÞùáÞû̹ÖÇÌÓïáòÖÓÖ²¼"œ ÆÆÓÚ‚ÌٟáÖÇžÓ¹fÙùË¡ÖÇ¢Ó¹XÙúŸË¡RÖØÓا‚dÃ�¡ÖÇŸÓ¹=ÖÙúþØÓ¡-ÙûÌØŸË¡ØÌÝüÜá ÝøÌÝú̹¹Ýû̹öÙøÌŸÌ¹ÖÇÍÓ¹ôÖÛÎÖέ ¢A ôþþ¨ß§‚3¡ÖÇPÓïáÖ` ÆÓÖÓ¹ï!á §‚gÌÖÓ¹ŸÌ؟ˡأ áÖØ£ ÎÖØ£ ιÖÇÜÓ¹ÖÇÝÓÖέfþþ–zÌêÌÖÇÿ†‚ÓÖÎÖ8ØÎÖVÎÖ2ØÎÖ²¼"œ ÎÙñ£‚ÌÙÇÿÉ¡ÖÙιÖÇÿÎÖOÎï˫쓡ÖÓì¡öÖ2ØÎÙÇÿÉ¡ ØÙ†‚‚«¹ÇÿÌê§Å¡ê«Ø«¥ žñ§‚_¨ ñ¢Ùš­‚ ¤þþf{êÌÖÇÿ†‚ÓÖ²¼œ ÎñÌÖ2ØÎïáÖÓ¹ÖǶÓÖ²¼œ ÎÖÎ ñŸË¡ ñ§‚eË¡ÖÇèÓïáÖÓ¹ÖÇ·ÓÖ²¼ œ ÎÖÎ ñŸË¡ ñ§‚eË¡ÖÇéÓÖOÎÖ2ØÎÙ£ÇÿÉ¡ ØÙ£†‚‚«ê§Å¡ê«Ø«Ù« ­Àþþ9lïáÖ ÆÓÖÓØþŸË¡ÖØþø�Χ‚e« ­,þþ:ÞÖ²¼ œ ÎÖÎñŸË¡ ñùË¡ÖÇÛÓ¶¹ Öι1Öι+¬¹$  "/ÖOέlþþëÖ²¼"œ ÎÖÎñŸË¡ ñùË¡ÖÇÞÓïË¡ÖǪÓ¹ÖÓÖ²¼ œ ÎÖOέNþþ­¶¡3Ö²¼ œ ÎÖÎñŸË¡ñùË¡ÖÇìÓ¹ ñ§‚aË¡ÖÇÓ¹ÖÎÖOέJþþ‰sñ§‚dá ÖÆÎ ÖRÎÖ8ØÎÖRÎÖ6ØÎê•«¹ÖRέ4(þþ Ÿ¶¡=Ö²¼ œ ÎÖÎñŸË¡%ñùË¡Ö}Ó¹¶³@‹ñ§‚aË„¡ÖÇ(Ó¹Öζ¹$ÖO Χ‚b« ¹;ÖO Χ‚b« ¹/ÖOΧ‚c« ¹#¬¹+! -­š+þþD Ö²¼ œ ÎÖÎñŸË¡ ñùË¡ÖÇÙÓ¶¹ÖιÖιÖι¬!¹  ÖOέZ,þþ�DÖ²¼"œ Î² ¥ ¨ÖÎÖ8¶ÎïáÖÓ¹ÖÇ=ÓÖ²¼"œ ÎÆ¥ ¨ÖÎ ¶ ŸË¡v¶ ùË¡ÖÇ9Ó¹f¶ ü¡ÖÇ<Ó¹XÖÚ¶ úÓ“¡ÖÇ8ÓÖ¶ úÆÆÓ ØÙ•¸§‚D„“¡ ÖÙÎÖØÎÖÎÙË¡ÖÙ€ÎÙÅ¡ÖιÖÎÖ8¶Î­Ì.þþ&�¸Ö²¼"œ Î²¥ ¨ÖÎÖ8¶Î¶ŸË¡B¶ùË¡ÖÇÓ¹2¶ü“¡ÖÇ;Ó¹#¶ý˸Ö¶úÆÆÓ ÖØÙ•€ÎÖ8¶Î­v/þþ†¾Ø¡-Ö6¶ÎÖBΧ‚D„“¡ÖÎÖ¶ÎÖÎÖ$¶ ûøÎ¹¶¡Ö@¶þ¶ýιÖBέP0þ­÷ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ÖÆÎ ¶þy,&áÌÖÎ.ïáÖÓ¹ÖÇ>ÓÖÎ/¹ÌÖÎ/ïáÖÓ¹ÖÇ?ÓÖÎ.ߟËÊ ŸË„¡ßûÊ ûË¡ÖÇ:ÓÖÎÖÎÖ8ÚÎÖÊÎ Ö6ÚÎÖ6ÛÎÖIÎÖ!ÊÎÙ¡Ö6ÜιÖ6ÞÎÖ6ÚÎÖPÎÖ.ÚÎÖÙ“Î0Ù¡Ö6ÞιÖ6ÜÎÖ6ÚÎÖÙÎ0Ù¡Ö#ÎØ¡Ö;ιÖ?ιءÖ:ιÖ>ÎÖÎÖ9ÊÎÖÊÎ ê�•«­"-þþ®,¥ƒ ¶¤ü¸¶ŸË¶“„¡¶ù§á¸¹¶ú¸¹ö­&:<þþöeï"Ë¡ÖÓ¹òéÌ¥ƒ Ú¤ùˡڕ̹öÌÖÎ<Ù¡Ö9Øûι]ÌÚÅÙ“„¡Û‚ÌÚ•ÌÖÎ<¹ôÙ“¡ÖǧÓ¹7ØøÃ¡¥ƒ Ú¤¢¥ƒ Ú¤û‚šØ¥ƒ Ú¤ûšÖØø‚�ÎÖ§‚nÛ•ÎÖÎÖÓ­bŠ  ;þ׃ž«‚J§‚J§‚K•§‚]†«‚\§‚\É¡«‚\§‚\Å¡«‚\² ž §‚\¹öÇÿ«‚M¥Çž¹ôÇÿ«‚M¥Çž¹ôÇÿ«‚M¥Çž¹ôÇÿ«‚MþD¯¥Çž¹ôÇÿ «‚M¥Çž¹ôÇÿ «‚M¥Çž¹ôÇÿ «‚M¥Çž¹ôÇÿ«‚M¥Çž¹ôÇÿ«‚M¥Ç ž¹ôÇÿ«‚M¥Ç ž¹ôÇÿ«‚M¥Ç ž¹rÇÿ«‚M¥Ç ž¹cÇÿ«‚M¥Ç ž¹TÇÿ«‚M¥Çž¹EÇÿ«‚M¥Çž¹6Çÿ«‚M¥Çž¹'¬¹ ÷êÝÐö©œ�‚uh[NA4ž«‚L§‚\«‚^­7 bDþþ™G§‚oÌØøŸË¡Øø¢ šØù¡§‚8¡ÖÎ Øû«‚rØú«Ø£«‚nØÿ«Øþ«Øü«‚s§‚o¢ ž!§‚o£ «‚o§‚3¡ §‚o£ ŸÃ¡Ÿ«‚o­bþþÍf«‚4§‚Ÿ É¡ §‚Ÿ‚«‚Ÿ¥‚ §‚Ÿ•¤‚ª§‚Ÿ•¤Øš¥‚¥‚¼ Ø—œ  ½ ØÇ,Ç/”‹¡«‚: ž­VþþvöÙ¾ÚÉ¡ÙÌÖÆÙÇÿÏÖÆ¦ ÇÿÏÆªÿ¹öÌÚ®ÚÛ•®Ä¡Þ̹ܕÌÙܾ Ë¡ÌÜÝáô­P� X&þþg:ØÙÂ^¿Ù•ÌÚ ŽÌÚ †ÌØÙÂ0Û‚¿ÚÃÙÃ�¡öØÙ•Â#¿­) 6'þg&ÆÙª@Úɡ̧‚Ÿ” Ì€¨Ê€¨·¡ðÆ'¦ªÿ®€ª§‚Ÿ®€©È¡ôÊ€ªÌ&¹Ê&ÐÌ&Ê&Ê€¨‹¡k¥‚ªÊ&þ|þ•¤ø ɡ̀§¹¥‚ªÊ&•¤ødɡ̀§¹Ì€§ÖÆ'Ú¥‚ Ê&•¤ø‚Ê€§Î&¡(ÖÆ'Ú¥‚ Ê&•¤ø‚¥‚ªÊ&•¤øÎ'Ê€¨Ê&—… Ì€¨Ê&Ê€©Ã¡öƾÆ'¾‚DŽšWÖØ®€©ÆÏÖÊ€©ÖÆ'Æ€ªÇ„ƾ•ÏÆ€ªÏÖÊ€©ÏÖØ®€©ÖÆ'Æ€ªÇ…ƾ•Æ'¾Ç„•ƾ‚ÏÆ€ªÏÖÊ€©Ï¹ÖØ®€©ÆÏÖÊ€©Æ'ÏÖÊ€©Ï¹ò­'…&J%ÿPASINTERP.ERû?? þr Unknown P-Machine Error #Unimplemented P-Machine Instruction Range Error on SET Operationruction Subscript or Subrange Errornruction þöƒInteger Divide-by-ZeroErrornruction  String Range ErrorZeroErrornruction SYSCALL Parameter Errorrrornruction Error Reported by Host Systemuction þçÌ$Dangling Pointer (Value not in Heap) Heap Overflowter (Value not in Heap) %Attempt to EXIT an Inactive Procedure .Called Segment Can't Fit into Available Memory þ`\Call to a Non-Existent SegmentAvailable Memory  5Incomplete Read of a Segment by Host Operating System 0Attempt to Open Multiple Files Entitled 'OUTPUT'ystem .Heap Overflow During Internal ALLOCATE RoutineT'ystem þ^±Program Filename Too Longrnal ALLOCATE RoutineT'ystem Integer Multiply Overflowrnal ALLOCATE RoutineT'ystem +Unknown Error From Floating Point OperationineT'ystem (Overflow From REAL to INTEGER ConversionionineT'ystem þVâFloating Point UnderflowTEGER ConversionionineT'ystem Floating Point OverflowwTEGER ConversionionineT'ystem Floating Point Divide-by-Zero ConversionionineT'ystem No User Program SpecifiedZero ConversionionineT'ystem þXs/Attempt to Execute a Separately Compiled Module'ystem -Current Interpreter Does Not Support Compilerle'ystem Error on READ of Integer or Realport Compilerle'ystem Error on READ of Realger or Realport Compilerle'ystem þ²˜'PWROFTEN Function Argument Out Of Rangempilerle'ystem Overflow From EXP Function Out Of Rangempilerle'ystem "Negative Argument To SQRT FunctionRangempilerle'ystem +Non-Positive Argument To LOG or LN Functionerle'ystem þÚŽAttempted GET Past End of filer LN Functionerle'ystem +Error #33: Report to Rational Data Systemserle'ystem +Error #34: Report to Rational Data Systemserle'ystem 1Requires Capability Not Generated for Interpreterstem þÌŸ)Field Width in Output Format Out of Rangeerpreterstem Security Violationput Format Out of Rangeerpreterstem External File Name Too Longt Out of Rangeerpreterstem "Record Number Out of Range in SEEKf Rangeerpreterstem þ&!FILETITLE Applied to an Open FileKf Rangeerpreterstem !Attempted I/O to an Unopened FileKf Rangeerpreterstem ,Program/Interpreter Revision Incompatibilityreterstem %Non-Positive Divisor in MOD Operationibilityreterstem þšÄ Integer ADD or SUBTRACT Overflowationibilityreterstem Stack Overflow SUBTRACT Overflowationibilityreterstem &Number Stack Overflow (Internal Error)bilityreterstem )Limitation of Evaluation Release Exceededityreterstem þÀ¸í2Unresolved Assembler References -- Must Be PLINKedtem 1Unresolved External References -- Must Be PLINKeddtem 'Program not PLINKed to this InterpreterBe PLINKeddtem ÿINTERPOK.PAû?? þ[SGprogram interpok; var output : text; begin rewrite(output); writeln('Interpreter OK') end. ÿREAD.MEû) $þ:ûFile: READ.ME (RDOS/DOS Version) HOW TO INSTALL RATIONAL DATA SYSTEMS PASCAL ON RDOS/DOS The release consists of a PROGRAMMER'S MANUAL and either (a) a single reel of magnetic tape, or (b) one or more diskettes. The release files are divided into tþñ¢hree groups: Group 0: PASINTERP.SV Pascal Interpreter PASINTERP.ER Runtime Error Message File PASCAL.PX Standard Pascal Compiler PASCALO.PX Overlayed Pascal Compiler PASCAL.ER Compiler Error Message File PINFO.PX Programþ€Ä Information Utility INTERPOK.PA Test Program: Source INTERPOK.PX Test Program: Executable TEST.MC CLI Macro to test things out MANUALn.nn Manual Update for Current Version RELEASEn.nn Release Notice for Current Version READ.MEþŒº (This file) Group 1: MANUAL Magnetic Copy of PROGRAMMER'S MANUAL Group 2: PASCALGEN.PX Custom Interpreter Generation Utility P****.RB  Relocatable Binaries for PASCALGEN PLINK.PX Pascal Linker Utility Installation From Magnetic Tþ¢fape: ------------------------------- The system is delivered on 800 bpi 9-track magnetic tape. The tape contains three files in standard RDOS-Dump format. The first file (#0) is a dump of the Group 0 files, and so on. Load the files using a þ5*sequence similar to the following: CDIR PASCAL DIR PASCAL INIT MT0 /Or whichever drive you are using LOAD/V MT0:(0,1,2) /Load the desired files PRINT RELEASEn.nn /Be sure to read the Release Notice! TEST /Try to execute and compile Installation fþp rom Diskette: -------------------------- The system is delivered on two RDOS/DOS diskettes. The first diskette contains all the files from Groups #0 and #1 (above). The second diskette contains the files from Group #2 -- the PROGRAMMER'S MANUþ·ÙAL. Execute the following or equivalent: CDIR PASCAL INIT PASCAL DIR DP1 /Or your own diskette drive MOVE/V PASCAL DIR PASCAL PRINT RELEASEn.nn /Be sure to read the Release Notice! TEST /Try to execute and compile The TEST.MC Macro: ----þ0„------------- The TEST.MC macro will attempt to execute a very small program and will then compile and re-execute the program. It is self-prompting as to the state of the software. File: READ.ME (RDOS/DOS Version, Page 2) Evaluation Release Restrictionþ(7s: ------------------------------- 1) The interpreter shipped is customized for a particular hardware configuration. Neither the PASCALGEN utility nor the .RB files needed to generate an interpreter are supplied. Similarly, releases on diskette inþòRclude only one diskette -- only Group #0 files are supplied. 2) The interpreter will not operate beyond 60 days of the time the system was configured by Rational Data Systems. This date is obviously dependent upon your system date. Since sysþ®tem dates are so easy to change, we have implemented further restrictions. 3) A maximum of 10 files may be opened by any program at one time. This number includes the executable file, '.PX'. 4) All files opened by any Pascal program other thanþL{ the compilers will be deleted by the interpreter. This includes the program file, '.PX'! 5) You may not use the APPEND procedure in the evaluation version. 6) Since PASCALGEN is not available, neither are the facilities of assemþä¯bler interface. Note that the above checks are all performed at runtime, not by the compiler. We suggest that you run your programs via a CLI macro which first copies the program and input files, then executes the copy of the program file, usinþãÔg the copies of the input files. The only way to preserve output (which would be deleted if sent to disk) is to send it to a hard copy device or to mag tape. The Overlayed Compiler: ---------------------- On an unmapped system the interpreter and PþSîascal program must share your limited address space with the operating system. This restriction will manifest itself immediately if you attempt to compile a program with the standard compiler ("PASCAL"). We have designed an overlaid compiler especiaþÄ"lly for the unmapped user called "PASCALO". You will have to use this version of the compiler on almost all unmapped configurations. For details, see the section entitled "Overlaid Compiler" in the new manual. In addition, study the use of the "/S" (sþLâwapping mode) switch when running the compiler. On many systems, you will have to use both the overlaid compiler and the swapping mode. On all systems there are finite limitations regarding the size and complexity of programs which can þ´Ÿbe compiled. On a mapped system (AOS or RDOS) we can compile our compiler by using either the overlaid compiler or the "/S" switch. On an unmapped RDOS system, we cannot compile the compiler even using "PASCALO" with the "/S" switch. NOTE: þÔe---- For standard releases (not Evaluation Releases) the default interpreter, 'PASINTERP.SV', has been generated for a minimal RDOS/DOS system, a Nova 1200 with no options. Until you generate your own interpreter you will be running with this interpreteþ™è™r which may be significantly slower than what you should be using. Build a customized interpreter using the PASCALGEN utility as soon as possible. üÿMANUAL.û?? þa­ Programmer's Manual Pascal for Data General Computers Licensed Material - Property of Rational Data Systems, Inc. 0-1 NOTICE ====== Rational Data Systems, Incorþ(�porated (RDS) has prepared this manual for use by RDS personnel, licensees, and customers. The information contained herein is the property of RDS and shall not be reproduced in whole or in part without RDS's prior written approval. Users are þ=¨cautioned that RDS reserves the right to make changes without notice in the specifications and materials contained herein and shall not be responsible for any damages (including consequential) caused by reliance on the materials presented, inclþµuding, but not limited to, typographical, arithmetic, or listing errors. Copyright 1980 by Rational Data Systems, Incorporated All Rights Reserved Revision History Original Draft [0.00] July 1979  First Edition [0.10] September 1979 Seþüœcond Edition [2.00] May 1980 Third Edition [2.10] September 1980 0-2 Licensed Material - Property of Rational Data Systems, Inc. CONTENTS ======== 0 INTRODUCTION 1 EXTENSIONS TO STANDþÇþARD Strings . . . . . . . . . . . . . . . . . 1-1 Segmentation . . . . . . . . . . . . . . 1-7 Miscellaneous Extensions . . . . . . . . 1-9 2 DEVIATIONS AND LIMITATIONS  Heap . . . . . . . . . . . . . . . . . . 2-1 þŸj Case Statement . . . . . . . . . . . . . 2-3 Restrictions . . . . . . . . . . . . . . 2-3 3 INPUT AND OUTPUT 4 THE RDS COMPILERS Input . . . . . . . . . . . . . . . . . 4-1 Options . . . . . . . . . . . . . . . þÏQ. 4-1 Listing Output . . . . . . . . . . . . . 4-5 Analysis Output . . . . . . . . . . . . 4-9 Overlaid Compiler . . . . . . . . . . . 4-11 5 INTERPRETER AND ASSEMBLER INTERFACE Introduction . . . . . . . . . . . .þ 9 . . 5-1 PASCALGEN Utility . . . . . . . . . . . 5-4 Assembler Interface . . . . . . . . . . 5-7 6 SEPARATE COMPILATION FACILITIES 7 THE PLINK UTILITY 8 GENERAL ISSUES Inter-Revision Compatibility . . . . .þa . 8-1 PINFO Utility . . . . . . . . . . . . . 8-2 Efficiency . . . . . . . . . . . . . . . 8-3 Type Compatibility . . . . . . . . . . . 8-9 Hardware Performance Variations . . . . 8-11 Environment Inquiries þê. . . . . . . . . . 8-12 Data Representation . . . . . . . . . . . 8-13 9 USING RDS PASCAL UNDER AOS 10 USING RDS PASCAL UNDER RDOS AND DOS A RESERVED WORDS B LIST OF INTRINSICS C COMPILER ERROR MESSAGEþܾS D RUNTIME ERROR MESSAGES E ASCII CODE CHART INDEX Licensed Material - Property of Rational Data Systems, Inc. 0-3 PREFACE ======= This document is the "Programmer's Manual" for the Rational Data Systems implementations oþh¾f Pascal. The present manual describes our language extensions, and differences between our Pascal and the proposed ISO standard. This manual is not a textbook on Pascal. It assumes a reasonable familiarity with the language. It is intented to be þÉ5 used in conjunction with a copy of either the Jensen and Wirth book, "Pascal User Manual and Report", or the proposed standard; consider it an "exception report." We have attempted to describe in detail the differences between our Pascal anþÙd the standard. This includes both variations (which are few) and extensions. If this manual is viewed in this manner and is used in conjunction with the other materials, you should have no trouble programming in Rational Data Systems Pascal. Speciþt…fication Changes This manual is NOT intended to be used as a specification for Rational Data Systems' Pascal. As usual, any specifications are subject to change without notice. But there is another reason that we ask you not to become 'locked-iþzÂn' to what you read here: our Pascal WILL change. Such changes may occur as the standards are adjusted and clarified. If we develop improvements of our own which offer a significant advantage we shall incorporate them as well. We recognize the burdeþ‹Ün that this may place on our customers, and we intend to do what we can to aid your transitions to new versions. Typically, we would support old and new features for some time, and eventually phase the old capabilities out of the product. At þYæother times we may be able to provide a 'filter' or 'validator' program to help you convert old programs to a new format. In any case there is one suggestion which we cannot possibly overemphasize: SAVE COPIES OF ALL SOURCE PROGRAMS! Eveþ¬Ón for that "We'll never change it!" program, remember that the interpreters are also subject to change. If such changes occur, old programs will require re-compilation in order to be executable by the newest version. 0-4 Licensed þ}Material - Property of Rational Data Systems, Inc. EXTENSIONS ========== Character Strings The predefined type STRING is a variation on the standard type PACKED ARRAY OF CHAR. For each STRING variable you declare, the compiler sets up anþh array in which you can store a varying number of characters. Implementation of String Variables A STRING[] is stored as a PACKED ARRAY [0..] OF CHAR, and array element 0 is used to record the current-length attribute, a value in the range 0..25þc®5. The remaining bytes, 1.., are the data-storage area in which the characters of the STRING are kept. String References Because a STRING is a PACKED ARRAY OF CHAR, it is possible to use a subscript to refer to a single character in a STRING, thus:þå var st: string[99]; c: char; begin st := 'abcdefg'; : c := st[5];  { same effect as: "c := 'e';" } Unless you deliberately suppress range checking, your program will be prevented from accessing bytes outside the current eþ„Ûxtent of the STRING. For example, assume your program contains: st := 'abc'; After this assignment statement is executed, only the bytes st[1], st[2], and st[3] will be accessible. st[0], the length byte, is never accessible when range checkiþ9žng is in force. The statement: st := concat (st, 'd'); will invoke the 'concat' intrinsic (described below), which will both change the length byte st[0] to 4 and change the byte st[4] to 'd' whereas: st[0] := chr(4); st[4] := 'd'; will normallþ÷qy cause runtime errors. Licensed Material - Property of Rational Data Systems, Inc. 1-1 String Declarations Every STRING has a declared length, which specifies the maximum number of characters it can contain. The declared length is specified þPK in square brackets following the reserved word STRING; it must not exceed 255. The minimum length of every STRING is zero; in other words, so called "null strings" are supported. As with all other data in Pascal, there is no automatic initiþÿÐalization of STRING variables; do not assume that a STRING will be null (current length = 0) when allocated. Examples of STRING declarations: var little: string[1]; { either 1 character or none } biggest: string[255]; { largest possible STRING } þ%Ñ badstring: string[9999]; { not permitted } String Constants String constants consist of ASCII characters surrounded by single quote marks (apostrophes). A literal null string (consisting of no characters at all) is written as two adjacent apostroþ‰­phes. If you need to create a string constant that contains an apostrophe, you must write the apostrophe twice within the constant: biggest := 'it''s me'; An assignment to a STRING variable modifies its dynamic length attribute. In this example, tþjáhe dynamic length of BIGGEST will become 7, and its value will be the 7 characters "it'sme". String Operations Assignment to a STRING copies characters from the source to the destination string and updates the length attribute of the dþÆ estination. Comparison of strings is expressed in the usual Pascal manner, with the operators >, <, =, <>, <=, and >=. All comparisons are lexicographic, following the standard ASCII collating sequence. Only strings of the same length can resþ:‹ult in an 'equal' condition. When strings are compared, the following rules apply: 1. The shorter string is compared, one character at a time in left-to-right order, to the leftmost portion of the longer string; remaining characters in tþœÂhe longer string are ignored. (If both strings are the same length, the number of ignored characters is zero.) 1-2 Licensed Material - Property of Rational Data Systems, Inc. 2. The first unequal character comparison determines the result þ޾of the string comparison. No more character comparisons are performed after the inequality is detected. 3. If all corresponding pairs of characters are equal and the strings are of unequal lengths, the shorter string is considered 'less than' þ� the longer string. If all corresponding pairs of characters are equal and the strings are of the same length, the strings are considered 'equal'. Note in particular that trailing blanks are not ignored in STRING comparisons. The value of ('AB' = 'ABþÔ© ') will be FALSE. Concatenation := concat(,,...,) Returns the concatenation of through . For example: s1 := concat(s1,'xyz') will append 'xyz' to the string s1 provided there is room witþŠ*hin s1's maximum length to do so. If s1 is not sufficiently large, a runtime error will occur. Index := index(,) Returns the position of within . Scanning is left to right, so that the value returned iþ¨ûs the position of the leftmost occurrence of found in . Characters within are numbered starting at 1, and the position of the leftmost matching character is returned by the intrinsic. If there is no instance of þ”–in , the intrinsic returns zero. For example: i := index('abcde', 'cd') will assign the value 3 to the integer i. Length := length() Returns the current dynamic length of the . Licensed Material - Proþ¨uperty of Rational Data Systems, Inc. 1-3 Substring := substr(,,) Returns a substring from a string. The substring consists of characters beginning at position within . AþÏes with INDEX, numbering of characters in begins at 1. For example: s1 := substr('abcdef',3,2) assigns 'cd' to s1. Input and Output of Strings If a STRING variable or constant is used in a WRITE or WRITELN statement, the exact number þÄzof characters it contains (current length if a variable, actual length if a constant) will be transmitted to the output file. If a STRING variable is used in a READLN statement, characters are copied from the input file into the STRING variabþRCle until EOLN becomes TRUE. (The blank that represents the end-of-line is NOT copied into the STRING variable.) Because EOLN is used as the end-of-string indication, you must use READLN to read into a STRING variable; it is illegal to use READ. OnþÅály one STRING variable is permitted in each READLN statement, and it must be the last (or only) argument of READLN. (Otherwise, you would in effect be attempting to read more than one line with a single READLN.) If the input line is longer thanþ{ the declared maximum length of the STRING variable, only enough characters will be assigned to the string as are necessary to fill the STRING to its maximum length. (Note that it is the declared maximum  length, not the current length, of tþhùhe STRING, that controls the input operation.) Remaining characters of the input line will be discarded, and will not be available to the next input operation on that file. Type Compatibility of Strings Standard programs originally developeþoµd with a compiler that does not support STRINGs will operate correctly when compiled by a Rational Data Systems compiler. A 'standard' program might contain character literals, which in standard Pascal are considered either CHAR (if one characþLter long), or PACKED ARRAY [1..n] OF CHAR (if n characters long and n>1), and in our implementations are considered STRING. Because our compilers regard STRING as a variant of PACKED ARRAY OF CHAR, a program that uses character literals to initialþ Mize CHAR or PACKED ARRAY OF CHAR variables will function correctly. 1-4 Licensed Material - Property of Rational Data Systems, Inc. When you use a one-character literal in a context where CHAR data is expected, the literal will be treated as þ�ÎCHAR by our compilers. When you use a literal longer than one character in a context where PACKED ARRAY OF CHAR is expected, our compilers will treat the literal as PACKED ARRAY [1..n] OF CHAR, where n is the number of characters in the literal. þ'A literal null string will always be treated as a STRING. Mixing String and Char Types Because a STRING is really a PACKED ARRAY OF CHAR, the compiler's type-checking will prevent you from mixing STRING and CHAR variables. For example: var s0,þxý s1: string [255]; c: char; begin s0 := concat (s1, chr(0)); { won't work } s0 := concat (s1, c); { won't work } s0 := concat (s1, 'X'); { will work } The third assignment will be accepted because one-character literals are interpretedþêÿ as either CHAR or STRING[1] according to the context. The first two are illegal because the intrinsic 'concat' requires STRING arguments, and both the variable 'c' and the function 'chr' are defined as CHAR. One method of getting a CHAR into a STRINþK“G is to do it in two steps: s0 := concat (s1, ' '); s0 [length(s0)] := chr(0); In this case, the subscripted reference 's0 [length(s0)]' is of type CHAR, and therefore 'chr(0)' can legally be assigned to it. String Assignment and Parameter Paþ›sssing For purposes of assignment, any STRING is type compatible with any other STRING. This does not, however, guarantee that a runtime error will not occur. The following example will cause a STRING RANGE ERROR at runtime: var a: string[5];þ¼/ b: string[10]; begin b := 'TEN CHARS!'; a := b; String 'a' has not been declared with a maximum length adequate to hold the current length of string 'b'. Licensed Material - Property of Rational Data Systems, Inc. 1-5 When passedþÞ as non-VAR parameters strings declared to be different lengths will be considered as compatible by the compiler. As above, however, if the actual parameter's current length is too long for the called procedure's formal parameter maxiþ·mum length, a runtime error will occur. When passed as a VAR parameter a length restriction is enforced at compile time. Since a VAR string parameter permits the called procedure to actually modify the caller's string, the formal parameter must haþ�øve a declared length which is less than or equal to that of the caller's actual parameter. Code within the called procedure cannot, therefore, access data outside the range of the caller's actual string parameter. For example: type string10 = string [þìr10]; string30 = string [30]; string50 = string [50]; var short: string10; medium: string30; long: string50; procedure proc (var varstr: string30); begin : { code here can modify up to 30 characters } : { of the callþ(=er's VAR string parameter } end {proc}; begin proc (short); {illegal} proc (medium); {legal} proc (long); {legal} The illegal statement will be rejected at compile time since 'proc' might access data beyond the declared (and allocated)þ)x maximum for 'short'. The two legal statements could cause runtime errors (depending on how 'proc' manipulates its argument 'varstr'), but will be accepted by the compiler. 1-6 Licensed Material - Property of Rational Data Sysþœtems, Inc. Segmentation of Programs Rational Data Systems implementations permit you to split your Pascal program up into SEGMENTs -- sections of code that are not always in memory while the program is executing. The reserved word SEGMENT is þ�Eused in RDS Pascal source code to indicate that you are using the segmentation feature. The word SEGMENT may optionally precede either the word PROCEDURE or the word FUNCTION. The routine so marked (including any routines nested within itþ‰ð) will be compiled into a separate code segment. Your program always consists of at least one segment; it may contain as many as 16 (i.e. you may use the word SEGMENT up to 15 times). Segments within a program are numbered 0..15; the PRþH—OGRAM segment is always number zero. By using the segmentation feature, you can significantly reduce the main memory requirements of many programs. It is commonly used for routines that are seldom needed, such as initialization, termination, exceptiþŸzon handling, and error handling. Runtime Handling of Segments Segment number zero of your program is always loaded into memory at the start of execution. If your program consists of several segments, the others are loaded when required and deleted wþÌâhen no longer needed. If a certain segment is never called during a given run of the program, it will never be loaded into memory. A segment that is called recursively will not be repeatedly loaded into memory. The interpreter keeps a 'use count' þH for each segment of the program, which enables it to (a) determine whether the segment has been loaded into memory, (b) delete the segment as soon as it is no longer needed, and (c) avoid multiple loadings of the same segment. If a segment's usþûìe count is zero when it is called, the interpreter will load the segment from disk if possible (a runtime error will occur if sufficient space cannot be allocated). Before executing the called segment, the interpreter sets its usþ×Ðe count to 1. If a segment's use count is greater than zero when it is called, the copy already in memory will be used, and the use count will be increased by 1. Each time a segment is exited (that is, when control returns to a different segment)þ]Ì, the use count of the terminating segment is decreased by 1. When a segment's use count goes from 1 to zero, the space it occupied is made available for other purposes. (Later calls of the same segment will therefore cause it to be reloaded from disk.)þ�ð Licensed Material - Property of Rational Data Systems, Inc. 1-7 Position of Segment Declarations The only restriction you need observe (other than the limit of 16 segments) is that in any program, SEGMENT procedures or functions must be the þX† first declarations containing code-generating statements. In other words, you may not ask the compiler to switch segments; it cannot compile part of your main (PROGRAM) segment, then another segment, then resume work on the main segment.þç— The restriction on segment declarations is not at all difficult to cope with because our compilers also support FORWARD declarations of procedures and functions. This illegal program (or one like it): program bad; procedure a; { seþß!g 0, proc 2 } begin : end; segment procedure b; { seg 1, proc 1 } begin : end; begin { body of program } { seg 0 again ! } : end. { program } can be changed into this legal program (or one like it): prograþ7 or argument. When used in conjunction with the MEMAVAþeÈIL function it provides a convenient means of determining potential storage capabilities. := sizeof() DATE Intrinsic DATE is a predeclared procedure which accesses the system's date and returns the current year, month, aþÕnd day of month. The year is a true 4-digit year (e.g., 1981 not 81). date(,,) All three arguments must be integer variables. TIME Intrinsic TIME accesses the host system's clock. It returns three integer values: hours, minutes,þš� and seconds since midnight. time(,,); All three arguments must be integer variables. POWER-OF-TEN Function Since Pascal does not provide an exponentiation operator we have provided a function which will return the Rþ2EAL value of non-negative integral powers of ten within the range 0 <= argument <= 75. := pwroften() AVAILABLE MEMORY Inquiry Function To permit you to determine at runtime the amount of memory which is currently unused we hþ-ave provided the MEMAVAIL function which returns the number of 16-bit words of main memory not currently in use. := memavail Licensed Material - Property of Rational Data Systems, Inc. 1-9 Conditional Compilation The compiler will þØ– recognize simple boolean constants in IF statements and eliminate 'dead code' at compile time. For example: const testing=false; { change to 'true' if testing } : if testing then begin { code compiled only if testing=true } þ t end else begin { code compiled only if testing=false } end Only the constructions '' and 'not ' are recognized at compile time. More elaborate boolean expressions will cause actuaþtèl code to be generated. This feature is particularly useful, since it means that a variety of object programs can be generated from a single source program merely by changing boolean constants before  each compilation. Maintenance of sþˆeveral versions of the same program is much easier when there is only one source file for all versions. Extended Comparisons RDS Pascal permits = and <> comparisons of records and all arrays. Output of PACKED ARRAY OF CHAR The WRITE aþ„²nd WRITELN intrinsics will accept the (unsubscripted) name of any PACKED ARRAY OF CHAR as an argument when writing to textfiles. The entire array will be written. PACKED ARRAY OF CHAR and STRING Compatibility RDS Pascal permits the assignment of striþùing literals to variables of type 'PACKED ARRAY [n..m] OF CHAR' where n <> 1. The proposed standard requires that n = 1. This requirement is enforced when a program is compiled using the '/C' (conformance) switch. 1-10 Licensed Material - PropeþVyrty of Rational Data Systems, Inc. The EXIT Statement We have restricted the use of the GOTO statement to local branching only (i.e., you cannot GOTO a label in another procedure). But it can happen that a program must exit from a deþúyeply nested procedure to, say, its outermost block. For example, assume that in a certain program procedure A calls procedure B, which in turn calls procedure C. If procedure C detects a critical error that will prevent successful completion of A þ‚and B, the program should report the error and somehow bypass the remaining parts of A and B. So that you can easily cope with situations such as errors detected deep within a nest of procedure invocations, we have extended our Pascal witþ²Äh the EXIT intrinsic. Like REPEAT..UNTIL, WHILE, and other 'structured' statements, EXIT is nothing more than a restricted GOTO. The restriction that distinguishes EXIT is that EXIT always branches to the epilogue code of some function or pþ‹„rocedure; it cannot branch to a label. (The epilogue of a procedure is the code that 'cleans up' at procedure exit; its main job is to close files declared in that procedure.) What makes EXIT unique is that it permits a branch to a routine other þ*than the one that contains the EXIT statement, while guaranteeing that all procedures 'exited' on the way will be terminated in an orderly fashion. The EXIT intrinsic takes a single argument, the name of the procedure or function being exþ´_ited. The reserved word 'PROGRAM' may also be specified as the argument, in which case the program is terminated. The behavior of the EXIT statement is entirely dynamic. It terminates execution of the most recent invocation of the routine named,þa and also any other routines invoked since that time. For example: procedure father; procedure son; procedure grandson; begin if then exit(father); end { grandson }; begin { son } : end { son }; begin { father þP} : end { father }; The EXIT within 'grandson' will cause three routines to terminate. In cases like this, the interpreter will see to it that the epilogue code of all the procedures is executed before the caller of 'father' resumes þJ÷execution. Licensed Material - Property of Rational Data Systems, Inc. 1-11 It is possible to cause a runtime error when using EXIT, because there is no guarantee that the named procedure is actually a dynamic ancestor of the procedure execþduting the EXIT. For example, the following code could cause a runtime error: program trouble; procedure c; forward; procedure a; begin if then exit (c) end { a }; procedure b; begin a end { b }; procedure c; bþdÁegin a end { c }; begin { program } if then b else c end. If both and are TRUE at a certain time, procedure A will erroneously attempt to exit from procedure C, which in fact has not been called. NþýTote that this problem can only occur if the procedure named in the EXIT statement is not a lexical parent of the procedure using the EXIT statement. A procedure, X, is always safe in saying EXIT(Y) if X is nested within Y; the block structure rulþ‘Yes of Pascal ensure that in such a case there will always be an active invocation of Y while X is running. 1-12 Licensed Material - Property of Rational Data Systems, Inc. DEVIATIONS AND LIMITATIONS ========================== þŸî The Heap The NEW intrinsic allocates storage in an area of main memory known as the heap. In our Pascal, the heap is implemented as a simple stack. The MARK and RELEASE intrinsics control the deallocation of items on the heap. (The standard proþøcedure DISPOSE is not supported by RDS Pascal). MARK records the current extent of the heap. RELEASE cuts the heap back to a point previously recorded by MARK. Both procedures require a pointer argument. It can be declared as a pointer tþoo anything you please. ('^INTEGER' is commonly used.) The call MARK (P) will assign to the pointer P a value representing the current extent of the heap. The call RELEASE (P) will assume that the pointer P contains a legitimate heap mark -- i.þRYe., a value previously acquired by a MARK (P) call -- and will 'tear down' the heap to the indicated position. Note that P is declared as a pointer merely because the type-checking rules of Pascal force it to be declared as some particular þ5þtype. It is not actually used as a pointer, but simply as a machine word in which the interpreter can record implementation-dependent information about the heap. After the call 'MARK (P)', your program should not use P for any other purpþ_¸ose until a corresponding 'RELEASE (P)' has been executed. Some care must be exercised when using these extensions, as very little runtime error checking is performed. Indiscriminate use of MARK and RELEASE can create 'dangling references,' i.e., caþ·n cause pointer variables to refer to unallocated or reallocated memory.  Licensed Material - Property of Rational Data Systems, Inc. 2-1 Assume we have a program that contains the following code: type myrec = record name: striþABng[255]; address: string[255] end; var p,r,s: ^myrec; saver: ^integer; begin new(p); { statement A } mark(saver); new(r); { statement B } new(s); { statement C } release(saver); { statement D } The effect on þ� the heap will be as shown in the following diagrams. (Each picture show what the heap looks like AFTER execution of the corresponding statement.) +--------+ | | þN¼ | S^ | | | +--------+ +--------+ | | | | | R^ | | R^ | | | þyÖ | | +--------+ +--------+<=SAVER +--------+<=SAVER +--------+ | | | | | | | | | P^ | | P^ | | P^ | | P^ | | | | | | | þBI | | +--------+ +--------+ +--------+ +--------+ A B C D 2-2 Licensed Material - Property of Rational Data Systems, Inc. Case Statement WhþЏen the value of the selector variable in a CASE statement does not match any of the constant values, no operation is performed by the CASE statement, and execution continues with the next statement. (Many other implementations cause a runtime erroþ�Ur in this situation.) A statement earlier than the CASE statement can supply a default action; for example: var i : integer; b : boolean; b := true; case i of 2,5 : b := false; 4 : b := true end will set 'b' to 'true' when 'i' is þ¥ånot equal to 2 or 5. Restrictions Maxint The value of MAXINT is 32767. Procedures and Functions as Parameters PROCEDUREs and FUNCTIONs as parameters of a PROCEDURE or FUNCTION are not supported. Input Line Length Input lines to the compilþá', to distþ'¬inguish them from textfiles (declared 'TEXT'). A 'file title' is the external name by which a file is known to the operating system. An 'internal file name' is the name that identifies a file within a Pascal program. The phrase 'CLI name equatioþMon' describes the process of associating a data file (identified by its title) with a file declared in the program (identified by its internal name). The internal file name is listed as a program parameter; the file title is provided in theþ† CLI line that invokes the program. A 'prologue' is compiler-generated initialization code inserted at the beginning of a block. An 'epilogue' is compiler-generated termination code inserted at the end of a block. File Opening Three predeclared proþSZcedures are available for opening files in RDS Pascal: RESET, REWRITE, and APPEND. RESET and REWRITE are standard; APPEND is an extension. All of them can be used both to initially open a file and also to resume processing an already opened file. þ‘& All files are opened non-exclusively. The syntax for all three file-opening intrinsics is the same; their single argument is the file's internal name: reset () rewrite () append () Reset For a closed file, RESET opens the fiþí-le and positions the file at its start. Each RESET also performs a GET operation. For a file that is already open, RESET simply repositions the file to its start and does the preliminary GET. A runtime error will occur if RESET is attempted for a fiþZÖle that does not already exist. Licensed Material - Property of Rational Data Systems, Inc. 3-1 Rewrite If REWRITE is used for a file that already exists, the existing file is deleted. In any case, a new empty file is created. When REWRITE isþt used on a file that is already open, the file is first purged (forced to an 'empty' state) and then positioned to write the first record. Append The APPEND procedure is an extension implemented by Rational Data Systems. APPEND opens the file (if nþì>ot already open) and positions it at its end, so that additional records can be added. A runtime error will occur if APPEND is attempted for a file that does not already exist. Default Opening of Files The proposed Pascal language standard requireþ±Ls the 'standard textfiles' INPUT and OUTPUT to be opened automatically if they are listed as program parameters in the program header. When you list a standard textfile as a program parameter, the RDS compilers will insert 'reset (input)' orþWj 'rewrite (output)', as appropriate, in the prologue code at the beginning of the program block. File Closing Standard Pascal does not specify any method of explicitly closing files. RDS Pascal provides two intrinsics that close files: close (þ\2) purge () Close The file is closed and preserved if possible. When the CLOSE intrinsic is executed for a file that is not open, no action is taken. 3-2 Licensed Material - Property of Rational Data Systems, Inc. Purge The desigþ¡nated file is closed, and discarded if possible (e.g. if on disk). When the PURGE intrinsic is executed for a file that is not open, no action is taken. Default Closing of Files For each block in your program, the compiler generates epilogue code tþŽâo CLOSE all files declared in that block. Since a request to CLOSE a non-open file is ignored, the CLOSE in the epilogue will have no effect if your program has explicitly CLOSEd or PURGEd the file. File Names and File Titles The compiler reþØcognizes only the first eight characters of identifiers. Therefore, if you declare a file with an identifier longer than eight characters, its internal name -- and its default external title, as described below -- will consist of the first eiþ*?ght characters of the identifier you use. To process files that have external titles longer than eight characters, you can use the FILETITLE intrinsic (described in the next section), or CLI name equation (described in the section entitled 'Program Pþ×arameters'). The runtime system will accept file titles up to 32 characters long, or the maximum permitted by the host operating system, whichever is smaller. On RDOS, the system-enforced limit is 12: 10 for the title and 2 for the extension. þ9 On AOS, the entire pathname you use to identify the file must fit within the 32-character limit. The FILETITLE Intrinsic You can associate an external title with an internal name by using the FILETITLE intrinsic. FILETITLE may be used rþ epeatedly, allowing you to process many external files with the same internal file name. FILETITLE takes an internal filename as its first argument. Its second argument is a STRING expression that contains the external title. The file named þ.[in the first argument of FILETITLE must not be open when FILETITLE is executed. For example: var source: text; begin filetitle (source, 'SOURCEDATA'); reset (source); Licensed Material - Property of Rational Data Systems, Inc. 3-3 Defaultþá› File Titles The default external title of a file (other than the standard textfiles INPUT and OUTPUT) will be the same as the first eight characters of the internal name. The default titles of the standard textfiles INPUT and OUTPUT are automaticaþÁälly set to the operating system's standard input and output files (@INPUT/@OUTPUT for AOS, $TTI/$TTO for background RDOS, $TTI1/$TTO1 for foreground RDOS). Whenever you associate the title INPUT or OUTPUT with an internal filename, whether by using þßS the FILETITLE intrinsic, by using runtime name equation, or by default, the title will automatically be changed to fit the local operating system's conventions. The default title cannot be used if the file you intend to proceþW#ss has a title that is longer than eight characters, or begins with a non-alphabetic character, or contains characters other than letters and digits. In such cases, you must use either CLI name equation or the FILETITLE intrinsic. Program þñŽParameters File names may be passed to the program as parameters via the CLI. The interpreter will equate files in the program parameter list with positionally corresponding files in the CLI execution command line. Consider the following CLI coþ©mmand and program heading: PX COPYPROG ORIGINAL DUPLICATE program copyprog (input, output); Prologue code calls are made on the intrinsic FILETITLE to associate the internal files specified in the program parameter list with the actual þAÉfiles (or devices) as specified in the CLI line. This process is referred to throughout this chapter as 'CLI name equation'. Processing of the CLI command line is left to right. Null arguments are permitted, resulting in the external file þtr title defaulting to the first eight characters of the internal file name. For example, if COPYPROG copies a textfile from INPUT to OUTPUT, you could display the contents of ORIGINAL on your CRT by executing: PX COPYPROG ORIGINAL 3-þÿ4 Licensed Material - Property of Rational Data Systems, Inc. Since no external file title is equated with OUTPUT, the default file title is used (in this case, your CRT). Similarly, to copy text from the default input file (your keyboard) to a diskþ¦p file or device, type: PX COPYPROG,,NEWFILE The explicit null argument will cause the default input file title to be used and 'NEWFILE' will be the external file title assigned to OUTPUT. Special Handling of INPUT and OUTPUT Either, neitherþÛ®, or both of the filenames INPUT and OUTPUT may be specified in the optional program parameter list. However, files other than INPUT and OUTPUT must be declared within the outermost block as well as being listed in the program parameter list. PlacingþÅä a file name in the program parameter list merely means that its external title can be defined at runtime from the CLI. This explains an intentional deviation we have made from the proposed standard. The standard says that INPUT and OUTPUT may þqnot be declared in the usual manner, but only by placing them in the program parameter list. If this were the case, it would not be possible for the programmer to protect INPUT and OUTPUT from CLI name equation. Therefore, RDS Pascal permits you to þœ¹declare INPUT and OUTPUT in two ways: either in the parameter list (in which case the external file title may be changed via the CLI at runtime) or in standard VAR declarations (in which case the external filename is 'protected' and is not subjþ]ôect to CLI name equation). If the filenames INPUT or OUTPUT appear in the program parameter list, prologue code for 'reset(input)' or 'rewrite(output)' will be generated accordingly. This is performed only for INPUT and OUTPUT and only if they areþ* declared in the standard manner by having their names in the list of program parameters. For any other files (whether program parameters or not), and for INPUT and OUTPUT (if not program parameters) the user must provide his own explicit opening sþ tatement: RESET, REWRITE or APPEND. If you declare INPUT or OUTPUT in both ways, the VAR declaration will be ignored, and CLI name equation will still be possible. Licensed Material - Property of Rational Data Systems, Inc. 3-5 Priorityþ¬Ë of File Titling Operations There is a priority inherent in the various methods of associating internal file names with external file titles. The most recent titling operation is the one that holds. Titling operations are performed in tþZ_he following sequence: 1. Prologue code assigns the default title: FILETITLE (, ''); 2. If the file name is among the program parameters and a corresponding non-null external title has been specified in the CLI line, the followingþ_! prologue code is executed: FILETITLE (, ''); 3. After all prologue code is executed, explicit user-written code may re-title the file: FILETITLE (, ''); 4. Just before the file is opened by RESET, REWRITE oþer APPEND (either due to prologue or user code), if the currently assigned file title is either 'INPUT' or 'OUTPUT' it is re-titled to conform to the host system's standard input and output files. Using 'INPUT' as an example: FILETITLE (input,þý) '@INPUT'); { AOS } FILETITLE (input, '$TTI'); { RDOS background } FILETITLE (input, '$TTI1'); { RDOS foreground } Default Filenames in I/O Statements You can omit the filename when you use the intrinsics READ, READLN, WRITE, WRITELN, PAGE, þHËEOF, EOLN, or the RDS extension EOLCHAR, to access TEXT files. The identifier 'INPUT' or 'OUTPUT' will be assumed as appropriate in the argument list of the intrinsic. For instance, the following would be compiled identically: readln(); <---> readln(input,); page; <---> page(output); Because 'INPUT' and 'OUTPUT' are not reserved words, you can redeclare them as non-files. If 'OUTPUT' happens to be declared as a REAL variable, both PAGE statements above þe!will be flagged as erroneous because the argument to 'PAGE' must be a textfile and, in both cases, the compiler will encounter a REAL. If 'INPUT' or 'OUTPUT' are typed (non-TEXT) files they must be explicitly named. 3-6 Licensed Material -þm� Property of Rational Data Systems, Inc. Interactive Programming: Lazy Input Implementation Pascal input provides a 'lookahead' facility. When you RESET a file, its window is pre-loaded; i.e. each RESET operation includes a preliminary GET. Tþ†ºhe following examples have the same effect: var c: char; var c: char; : : read (input, c); c := input^; get (input); The very first READ to be executed works properly because of the implicit GET performed by the RESET that opened the file.þ®n This is very convenient for the programmer. The only difficulty with this input method is that it can be awkward when the programmer is writing an interactive program that must 'converse' with a user at a terminal. In such a situation, the looþ+�kahead feature of RESET and READ can become a hindrance instead of a help. For example, this program might not behave as the programmer intended: program p (input, output); var s: string[80]; begin writeln ('What is the question?'); readln (sþ); If Pascal input operations are implemented precisely as the language definition suggests, then the prompting message will not be displayed on the terminal until after the user has struck one key -- because of the implicit 'reset (input)', whichþQü performs a 'get (input)', at the very start of the program. Implementors of Pascal are aware of how this language feature might hamper the development of interactive programs, and have devised a number of solutions. The scheme used by RDS Pascal þ­Çis known as 'lazy input'. The method of lazy input is based on the idea that actual input operations can be postponed until they are absolutely necessary. When you RESET a file, for instance, the language definition requires a GET; but thþÇe physical input can be postponed until the data must be available when your program refers to it. Similarly, the GET that is the last part of a READ operation can be deferred until the data is actually needed. Licensed Material - PrþyOoperty of Rational Data Systems, Inc. 3-7 In the above example, the GET(INPUT) operation (performed as part of the implicit RESET(INPUT)) does not wait for a character from INPUT. An interpreter boolean is set to indicate that the file buffer variabþ�ºle INPUT^ does not yet contain valid data and the program continues. The message 'What is the question?' is written. Upon encountering the statement READLN(S) the program finally performs the requisite physical input operation. If INPUTþ`{ is an interactive device, the program will 'hang' at this point (after writing the message) rather than before the the 'writeln' has been executed. If this were not done, a key would have to be pressed on the keyboard before the program wouþpþld appear to start, and input and output operations would forever be out of step. There are six Pascal constructs which generate code requiring the validation of an input file's buffer variable: get (f) read (f, ) readln (f) or readln (fþç£, ) eof (f) eoln (f) f^ { direct buffer variable reference } The first three on this list would normally cause an input operation in any case. The implementation of lazy input simply means that if you use one of the last three iþf[n your program, a 'postponed' input operation could occur at that time. Buffering of Textfiles To minimize the number of operating system calls, the interpreter will buffer textfile output data. As a rule, when you say WRITE, your data is copied intþsŽo an internal line buffer, and doesn't get sent to the host system until enough is collected to make the system call reasonably efficient. Synchronization of "INPUT" and "OUTPUT" The buffering is generally invisible to the application progþ…rammer, but it can become visible -- and a nuisance -- when the program has two files, one representing the screen (or printer) of a terminal, and the other representing its keyboard. A synchronization problem can occur if output data is waitingþfG in an internal buffer when an input operation is performed. For example, prompting messages might not be displayed when required in an interactive environment. 3-8 Licensed Material - Property of Rational Data Systems, Inc. It would be þ‚Ípossible to avoid the buffering, and perform a system call for each and every character transmitted through a textfile. That would solve the synchronization problem, but would introduce quite a lot of overhead. Also, it's not likely that an applþÇ[ication program would deal with more than one terminal device; though it might well contain many textfile declarations. So there's no point in forcing unbuffered access to each and every device handled by a textfile. In order to allow praþãctical communication with a program's console without giving up the efficiency of buffered output, RDS Pascal synchronizes the files INPUT and OUTPUT. (That is, files that have the titles 'INPUT' and 'OUTPUT', regardless of their internal names.)þòË Data saved in the internal buffer for the file titled OUTPUT is physically written when one of three conditions holds: 1. the output buffer gets full, 2. the program executes WRITELN(), 3. the program executes READ(). The first two conditions apply to all textfiles. The third is a special feature, designed to let you use INPUT and OUTPUT to communicate easily with a terminal. For example, you can design a program that reads an answer from the þ*» same physical line on which it displays its question: program x (input, output); var  id: integer; name: string[100]; begin write('ENTER EMPLOYEE ID NUMBER: '); readln(id); write('ENTER EMPLOYEE LAST NAME: '); readln(name); If the emploþ–ûyee's name is Robinson and her ID number is 321, after the two questions are answered the screen of the terminal will look like this: ENTER EMPLOYEE ID NUMBER: 321 ENTER EMPLOYEE LAST NAME: ROBINSON This form of synchronization applies to files þâ¼with the external titles 'INPUT' and 'OUTPUT'. For example: var output,harvey: text; begin filetitle(harvey,'input'); reset(harvey); { external title = 'input' } rewrite(output); { external title = 'output' } In this case, data sent to 'output'þ/7 will be coordinated with data received from 'harvey' (known externally as 'input'). Licensed Material - Property of Rational Data Systems, Inc. 3-9 Reading Paged Files: The EOLCHAR Intrinsic In our implementations, the PAGE intrinsic is consistentþÔÊ with the usual Data General interpretation of 'pages' in a file: it causes a formfeed character to be transmitted to the host system. When a Pascal program reads a textfile that contains formfeed characters, each formfeed will be interpreted -- þ-÷ again, in accordance with normal Data General practice -- as an end-of-line indicator. The Pascal standard requires all end-of-line indicators to be represented as blanks. Thus a standard program cannot detect the end-of-page condition. Rathþ er than tamper with the standard definition of the file window, we have implemented an additional intrinsic function which allows the programmer to determine the character that terminated the last line read from a textfile. The CHAR-valþ#¸ued function EOLCHAR() returns the character that terminated the last line read from . As with other textfile-oriented intrinsics, the argument may be omitted, in which case the compiler supplies the name 'INPUT'. If EOLCHþRýAR is used before any line markers have been detected on the designated file, the returned value is blank. The following program uses EOLCHAR to copy a file containing formfeed characters: program copy (input,output); var s: string[255]; begiþ¶¥n while not eof(input) do begin readln(s); write(s); if eolchar(input) = chr(12) then page else writeln end end. 3-10 Licensed Material - Property of Rational Data Systems, Inc. Random Access of Fiþ®hles: The SEEK Intrinsic The SEEK intrinsic takes a file name as its first argument, and an integer expression as its second argument. It positions the designated file at the record denoted by the second argument. The first record in a file is numþÃŒbered zero. If the second argument to SEEK is out of range (greater than or equal to the number of records in the file or less than zero) a runtime error will occur. After a SEEK, the file's window is undefined. After repositioning an iþá4nput file with a SEEK statement, you must then perform a GET before accessing the window. Note that each GET advances the file pointer, so that updating a record requires two SEEK operations: one to position the file before reading the record, anþ/[d one to position the file before rewriting it. For instance, to change the third record (position 2) in a file: var rand: file of data; : seek(rand,2); get(rand); process(rand^); seek(rand,2); put(rand); Without the second SEEK, þ¢˜ this code would have (erroneously) written the new data into position 3 instead of position 2. Files may be repositioned to the beginning with either SEEK(,0) or RESET(). The difference between SEEK and RESET is that REþwISET implies reading, and therefore does an automatic GET. SEEK makes no assumptions about the kind of operation to follow, and therefore does not GET any data into the file's buffer variable. Licensed Material - Property of Ratiþ*îonal Data Systems, Inc. 3-11 3-12 Licensed Material - Property of Rational Data Systems, Inc. THE RDS PASCAL COMPILERS ======================== Source Character Set Upper and LowerþãÕ Case The Rational Data Systems Pascal Compilers accept upper and lower case ASCII source text. All lower case is internally folded to upper case so that the following appear identical to the compiler: TOTAL := 0; Total := 0; Alternative þ¿hSymbols RDS Pascal implements the following alternative symbols: Reference Symbol Alternative Symbol ---------------- ------------------ ^ @ { (* } þ­| *) Note that the alternative comment delimiters are totally equivalent to the reference comment delimiters, thus a comment may begin with "{" and close with "*)", or begin with "(*" and close with "}". Compiler Options You canþQ: control the compilation of portions of your source file by using control comments. A control comment is a comment containing a dollar sign as its first nonblank character. The second nonblank character is a code letter indicating which þüTcontrol you are using. Only one control is permitted per comment. If you attempt to place several controls in a single comment, all but the first will be ignored by the compiler. (In other words, text following the control is treated as a normalþŸ comment.) Licensed Material - Property of Rational Data Systems, Inc. 4-1 Some control comments affect switches that can be "turned on" and "turned off". For such switches, the code letter is followed by an option character that may be '+' or '-þ°á' or '^'. For instance: (*$L+*) { $ r - } would turn on the 'listing' switch and turn off the 'rangechecking' switch. Each of these switches is actually a stack (maximum depth 15 elements). The '+' option pushes the 'on' value ontþšCo the switch stack. The '-' option pushes the 'off' value onto the switch stack. The '^' option pops the switch stack, restoring the previous setting of the switch. A frequent use of the stacking mechanism is to prevent printing of 'uninterþ¦ esting' code (e.g., in a development situation, code that has already been checked out and need not be reprinted each time the program is recompiled), without affecting the listing or nonlisting of code that follows. (The '$L' control is described in þludetail later.) { $L- } { position A } : { code here won't be listed } : { $L^ } : { listing of code here depends on what } { the '$L' switch setting was before the } { switch got turned off at position A } Too many pushes withþjout an intervening pop will produce the error message "Overflow in switch stack." Attempting to pop an empty switch stack (underflow) will result in the default value defined for that switch. Because stack underflow automatically supplies the default þNÌswitch value, stack overflow will only be signalled when you attempt a push that would lose a non-default value out of the 15th position. Stackable switches are identified by the notation "