%!PS-Adobe-2.0 %%BeginResource: font lsunr00 %!PS-AdobeFont-1.1: LucidaSansUnicode00 0.9 %%CreationDate: 1994 Jun 04 09:53:35 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((C) 1991, 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((C) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 00) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode00 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 100 /0064 put dup 101 /0065 put dup 102 /0066 put dup 103 /0067 put dup 104 /0068 put dup 105 /0069 put dup 106 /006a put dup 107 /006b put dup 108 /006c put dup 109 /006d put dup 110 /006e put dup 111 /006f put dup 112 /0070 put dup 113 /0071 put dup 114 /0072 put dup 115 /0073 put dup 116 /0074 put dup 117 /0075 put dup 118 /0076 put dup 119 /0077 put dup 120 /0078 put dup 121 /0079 put dup 122 /007a put dup 123 /007b put dup 124 /007c put dup 125 /007d put dup 126 /007e put dup 163 /00a3 put dup 167 /00a7 put dup 169 /00a9 put dup 173 /00ad put dup 174 /00ae put dup 176 /00b0 put dup 177 /00b1 put dup 180 /00b4 put dup 181 /00b5 put dup 182 /00b6 put dup 185 /00b9 put dup 186 /00ba put dup 188 /00bc put dup 189 /00bd put dup 191 /00bf put dup 198 /00c6 put dup 215 /00d7 put dup 223 /00df put dup 231 /00e7 put dup 233 /00e9 put dup 237 /00ed put dup 239 /00ef put dup 241 /00f1 put dup 247 /00f7 put dup 252 /00fc put dup 32 /0020 put dup 33 /0021 put dup 34 /0022 put dup 35 /0023 put dup 36 /0024 put dup 37 /0025 put dup 38 /0026 put dup 40 /0028 put dup 41 /0029 put dup 42 /002a put dup 43 /002b put dup 44 /002c put dup 45 /002d put dup 46 /002e put dup 47 /002f put dup 48 /0030 put dup 49 /0031 put dup 50 /0032 put dup 51 /0033 put dup 52 /0034 put dup 53 /0035 put dup 54 /0036 put dup 55 /0037 put dup 56 /0038 put dup 57 /0039 put dup 58 /003a put dup 59 /003b put dup 60 /003c put dup 61 /003d put dup 62 /003e put dup 63 /003f put dup 65 /0041 put dup 66 /0042 put dup 67 /0043 put dup 68 /0044 put dup 69 /0045 put dup 70 /0046 put dup 71 /0047 put dup 72 /0048 put dup 73 /0049 put dup 74 /004a put dup 75 /004b put dup 76 /004c put dup 77 /004d put dup 78 /004e put dup 79 /004f put dup 80 /0050 put dup 81 /0051 put dup 82 /0052 put dup 83 /0053 put dup 84 /0054 put dup 85 /0055 put dup 86 /0056 put dup 87 /0057 put dup 88 /0058 put dup 89 /0059 put dup 90 /005a put dup 91 /005b put dup 92 /005c put dup 93 /005d put dup 95 /005f put dup 96 /0060 put dup 97 /0061 put dup 98 /0062 put dup 99 /0063 put readonly def /FontBBox{-90 -211 977 1005}readonly def %/UniqueID 5054500 def currentdict end currentfile eexec AF9D569DD6A39B9A08931526FD86DA1F3D52F6A6E9A3C2A341616BA8AD4A6BBA6A84F4F691C60D 64B463C6D1B3A432634AAC416FAE1067039D940A82A692DB189D5719DA649D309E36853E1F767A 0DF1C424DA3E9D8E6B45B659E31B0A03BB7747FB2945268D0805A130347C7455FA73121BA001A8 5BFFF1847B8FBAE1B61BA76AB61D750F7BCDB1EE8E4B4E95657E783B2230A68A5A62E9E39EA352 7B3E832C6BF769697C2B18F29596B8A56AC9532224A452AE7A77A33DC5D437BAD5B4C1B9DD7680 FE4456B59A798F584F7913B3A790F3E5F9559505B80A36CDE0A4D46A595E942D798E6F6311B3E3 613059010E0C594BA804C9FA8EED254427D021628C6A59FA5C10314D3143AA329B9E1E767CADFB B864C70BE2EB0FA96FBDCC2EB1B44783431EE1CDCADC68DF65C29B4AB7C198BAA625A3736F6240 46E72FAE8F379B391393A007E9F796065FC622322C782111E2EE7B73FC09C5852F35A75CA296FB ADBC77E83C2378DAE017DC93437EDA4E1473D256C7AA433FAFF90BFF104C39847FB6076D559B8A 4D05AC2A35837CF7949567F37638F1FF869CA022F28979DC7AA611BCACFFE95AA23CBFB86C9719 BBD5738FB6D86326F1B0A84EFA79C80BDC618F42DFAB8B232211332E1D793A6C4CA71DE2D7DBE1 5806FB210EA36FCE5FA253B9C507225A5581765AA21DB9E1739AA6063F3F7F11D72E65C3F9A83E 71C8DFC9B9E13C0CCA25836D4233D10595ED053201C745C989878BC0457410C29FED3273550E0E C93F30B6E5994D0DE950C82E70299AB82D97B0EC11EE5CFD3A5311B0B9623C7CF73BCCE4D33436 655812E9BC69045B581B2BACE84DEBD480A8652676ABDB2976168954DCD745B42F92F25CC2A4B0 58AF8D1F0BFFC280B7FECF0593655FEDBE41135D72874467035351F424E92C9E4F628501066322 AE5896C2CC8C5AD9EE9C4E2076DF548DEF8A6ADAAEC8F05CBBB8882BE5DEBB3976FDD20539F0ED C5F331CADFFF8B1E1ACC3E0DE2DE0628766105E7EE97E55E66E2585DD7412749CCA828C3CB355F 716E5F447857D298C1383EDD389C2C09F3094A09F90652D5913EEBBFB16547FF31DBB8C0F43480 6C96524DB4F2D96F6A32856DC62FB350D208B4462521EA9578695E7F8A31FDAFC065535AB32B28 4F808767213AD4B89C02E59E3F2BD114BC411E4A9B58F97102E7ACB9310EE2AD2EAEE87E1702E4 3E00854C35156E731478402285AB23B0049A74381C2355F35511C7D966B2EE653CD8A3D7D6505E 80A4BD2C96B451354DD9323C30C9894A60CE614D0B091D3A03A5EDA4BB127F255FF706AD6E6827 9123CEF7396D89B5E5A968B4A4C0F4B0C227D1EE676801922A3CE24F2602569AF11ED43F17E2F4 6669AEBD1F6B9E53C76043E1CD9DACDBB3B6B87F949372C03E9A5C80FABBF2E7767880B7064D05 AE2D717B6A189D0C9F8DBC981EBEFD9A031C7592EFA0C08FD8BCD2FA1210881D95D6ECD9E72096 5ACE2A9462EB9C3504315CFE8C6B5362B833CE52BC726DCB3450CEB73E42E667B9D86D0F985A35 CAFF807F4DFAF156AFDCB999DBA61476BF4CCE49C6D8A8B7D2A3FC07EE8346E30F68FEF7774273 6E55BA23311F85C7FAD9D9AA1EB17E14C45033BEE8D3093AEE9E706133FA94413F30F723568255 498A071D76C10D12536425A7185DB60BDECAF6BFD0BE58F418D0E62FDA7B846BDD490EA7CEAD05 E1BB9A4DF66E13758858B80F6C7216D8D606E92BC93576A1FB3604D9FBD78656FDF64328AD9466 3CFABAB19A0636518FF61E62591661FBFD264B90156E24941177A42A0E5315F6168A93B96E27DF 2E7451F382C2C83241AC2B5F52A2C9453D3E207EBBEB3881FF237E9135E1D9191E1FBE5E606C60 43726A6783CD4414D26F8F95B260FAE60262DE148545079C80C962D5D7BDE2A77A814CDD4ED901 D28D4D5C4324DF7F7AA6B832B6F5E0E129F471A12373F0D97037FD695F921E0CAD8963372E8DC7 F3AA5E004E1F5980BA9825774BB2DD511B6A9D5A0C7E7885E39E3B5497EF466C52B7DD4CF4AD74 6E62FE4B1E082811AA45D6483725D0EE18C9C6BB988C036913682EAC4645EF90AD5FC24BC78778 DDDD48EC8F1E64525AB9B1EFE0CDFABCC6A17BDACC1B3B1929FB2FA1DB85991FFE1B92B7999C99 1BD3AC17B8A44E11DD954BEBFF002A0562EEDBC507DD0FF13ABADBC8E5676F5F951D1B32B725DE FB33219FF4DAE8298887E415434BE4012D1A294F807CF53248AA137591B532B573F41732216B12 685CB4B612B782E010644CB813A31AC4A25038A17FA0872E515BB2C119DEE59829927FBE20902D 18CF2F33E18DC0AC2108789FA1D1F61553184FC185A3BC3BA6985449149A08E4484F33EA950C18 B0148B6DA2EF0E2F1BE218CBEDFD4A4E9A53235840A8E8DD1A757D8F48DE07C687E5F35EF237DB EA582FFC92EAC5A8E4D9C1F048B037FDE46770B073B161333AD5E0DC09187DD0D9FF2CAFEFDCBD 00F3FF4642B63703F6B4CA2A479BE5145E3EA90359F4BE67F1EF0EC07F997A7A63797EAC98E3D0 C64F1EBEC99C7C436EF655ACF76DE5201A5B3F5CF58F0116008DF241D370E616E8FF10BC551606 F041FF641B4C8FA9274BC3FDE69602B2BD58D1428B119607AB28B30393C0BE4E33E5EE1059C9BC 1AC92B4AD1C7D1C71FB44429D8F8042F0A7ADEDE040F13D0C13F9BD92D3BE4E77E446DC8D57FCF C704F6EB8D438EFA72F74835DC24E853B3B1178904F0484AED543B57FC8ABFFF4253AFA2C93C66 C2144FF1777A1E3A40D1D023BCBE24557DAE5D76DAE6FC7063E11A5DD52B0060501E84AE0E66ED 7522828C15045CE72B548B59A3D7DFC3CF6779B4A6D4891B95CD4C6613C9390DD953FA58FE97D8 A545177EC9EDB59770B4B67111A1FEA9E74A61B360D9C19100440F8A69386EC3878C732DA58580 3A177AEFF85BFB5D112C37ADF7604BAB387F08243B2FEC24DAF9F95BB75A678DAA7AB277D933AC 0362E4DD5E6E4194DE873932EC10013B68CD0D1CF5298816E6B195372FAE49A5F9F722C30EDDBB 088E0F1F7D8A5D6386B8E3219125A8ED2A4D534761DEC9DA916FF875E13E309F2F2C925F28ED5E B792A290F05B7732D217A1CF9577C0107889C456924AB91BFB728E4C4A0E70412DA721CA4B1A30 189BE4414AEE3AB1943C0349ED437C91796EB8616D3CCBE148CD21B0DF7ED5720F18496100119C 2995490D7B60C994E93D874AB352A813604AA9A83D9388F758B7F479F9F6EFDBA983FA6DA07E7D 4F80E64E68634D9D811F3A0088BA46040577B89C7E147CF96C4A999CA1899799FA56F401645A97 DFF68155332EE3F23F3865B6DE715F1AB687A696878C9821E029E3D867BDC50322A0C90081E3B4 3BA1E889C277DEDA5ECB0CBE16F8FD562B82F22DA851CA5AC51EF3051382E9706A2F6F14CE6897 4292ECA605ACCBAB5071ED68BB05BDDE20C04E0007A8EF46D69FA79540C53E34C29F3CB68E9329 8472F6D89EF77A28A18B334278836F65E88255F1FD3A3D031A22BBC607E7BDEB1D00AF60D5E024 7E971B8965728CB1CAD6B5853F4F66448031312AFF8E56B01BB8D50F3A1060A18ADB1FA8F84C69 399BE117B98430CF63288BA1950ABE0CEC051B66A7EBCC7A3FC793589A4C52EDBD1A71ABE49916 10496FC6C346C376D3B061B00BE7B4A659D21A2C0FFD3FBEE485EDB7BEE599E5248DC5FCD89632 61BE192134BFF9C9709E76A567A0F7B5773870EEBE07E3630175BFD8C5520B2AAF6DD2D7C3FAEF 2E3F52318A7AD6E05847D76ED22D021BFDAAB041B16F2AE08FF86DE08FD998D61DE2D0EA477E46 6E963EE5EB69F69E30113F0D65683C37CDA865CF92EC5FFA54DBB6798738D38DD7898BC7C26AF6 939EFF47B1A3DEE6B5E38505EE05A0F671EF8917A434D92EBDD8F6820ED3A2F24199D47745D393 9259A5D856E1AA9EBA0292EEFAFF75F709ADCDA0D6453C3550DB28BFA22549BD2A282E8B9F2367 FCF20AACF9E7B725D0ED0498695F3A2DD76389BE8A99B603CFB0FEE3C5642BD02670108226BA9B A90B90B1D660C552307E3D388661A20C5F42C3CFF5D0E0F6DA69792E8FB4C83AB821D0F7D80F23 93BCAACBBE56E8095466F7BF8B0504B72734DEF119DC32DD63F1BCA3A66A5F6DB5BC221F4927C2 B08601F89D71E754481CD1B3B8E5EC8E9A22F5AD8CF45039FB8912A2E4EBC638743D7614BCB41A 49D162291E70BD656EF7F54BCA72BFC633984F1B15B4145F13D08B255B77A357C15B8A5DB04C3A 95827DAD0B0A302577C12F66389E4E40040EB52AD36552A592C47614A9035E7CDC4BDA55645F8F 72F10287EB7682F17034B836B44F111B786B8A6A47023EC1C950A4B0636C28E1753781C9C0B206 5DE58A47D2E7B1AD71D8DBD36E72DE625B5F52B9DB0F9679FC4B61005A112E9AA717504C71CC0F F50CE8E96DFE3AF6613CD4A3B4645ECC5F495E3DFBC1EC17575457EF39A0D4709221F2F1E14FAD ACF7FA5CCF662DD341477170FB291B706D76CE78C3CC90CD36A45BD04704DFB2B251CD9B1B69E6 B9DB3E9739DE8B2CD9DE63E61ABCB8581AD13493468EE995EE668DBE6AF6809F9529595D67DA56 DC7335876F36499EBB7226FDB9876A7D0D43159E77F0AE36B55033A11156C3F757FBBA38177D24 88EFD1BD9D8F69ABDD365989CEFD521F60BC9005D8C40942B43FC6DB8088842BE8A7B567420A80 9AC76E7BA77D5EFC8D9A2FCDD1A565EB580207A250621E27E51685A0C650323B4D2101810F6C89 E5D312BAEDAD3097F87C6064BA138681D3192C219ADA66AD2B0C679C8B00078597B2DE46F5A040 91F8C34813C07AC64B2F5FBF0EF52B16AA1EE9B9ADE71108DC9D47D587585A933CAA161CE586AC E30BA582A5CE8728991B10AE2012C2291B7DCEAF72E0299FF49F5ED495773656908F04F697ADF9 32AA61E6D90A87BB0F0311AF737E9F72C501CF1AB4DDF4392FB9F3E71F859D45F32EDF329F4856 C12ED2DB6FA3631B3731D5FB2DB79E193BB8BE75B85722E6CD85C35C05C2998BC6B854BFF76A39 B1A51ABD3304ED453AA413E6F6329B651FD13C0751886DE4553E0B79441FFECB81839626868715 0DF0FBBD53F7861647CAC9C633B9FF63BCB644D124F2420A7FE6EE7EFED293C9D53983617F2500 6CDF86C74694A20569BBC5DE7616333432C0FD525029E612858F5BF27D1FE06931A5AD37675162 2AE14BA10E2702CB896CC5A5164A287AE3771036AB2EC7F50B20576E73C151580E0D0884277FBE 9D2FBC52DDC0EC22A07138C692108A6C637ACA40D1881027E23BECFF6C54A50DAF7A79B5CB4BDF AE35CD587F46B14B3A89A50487F8A6E20EE48099B44F459E48D65FB393D2874E4BF7544FC325F5 B04FDFC0ABF2D6B8B6870A617D344AE093C4412007061670E6913B5581A0EE53B3D8C2D75E9560 101D4C217EC44BE71F866F0F40D1DC7296ED313ECBFF60CA3A05D45E51E32D9E75ED31F1905DC0 4F4AF2A29600172249D0B8B5B42D99A546A9C45704A35711637ABD7A64BF4D417564ED0BBBC7F2 093F6C7F87A770F6B6A655DCBC13FB4CC24FAEC848549CE2415301BF6BF234405946330E2964AF A37702223D1466A780720F39FE966AC1023866246F7E25BE2A1E0C009708DB2724E13770A8817D 6F27A095BED4C33648173F0DD8C627F405ABD3CA636EF8A9E77CC67D20E51721CA655704BFEC27 564A69E6193E5E3AB1814FBD3BE29D72836BF85C85F4555FDF3908E6BED58E0927BA45AD4434F8 D15C510FA5CD1311F7DBB20CAACE0D88535C58309CC82CA5E6ABA2E0DCC4503149E52572A0F8C6 7ECE6B8145C85E5F211F341AC1450EEF4D1102CA184DABD5CF00049F7BE76FA793893F2873A237 FEFE245F059AC85956B5A603DB8871BCF4DF3665364525E7B539A6A4F2C59473908121FEA5DA8F F5E4A4FBAE0C602130400E1D9D1185703F20895806C2DFE6E47408347CAEF151C730783FB6BA38 9EDEA18F865240ED604D0B6F5850CD18FEB63AD0A3ED46A933DE64C9571C7F15393AA81577A0BA 6A227ACA16DB43307E76C10FC630E6550079E7E5609FACF8DD84376AC186DE2E1CF84847C4E2D8 C58385EFCA099E81B6435D8DFA6775BFD76C527DA6CE32B6326944FB6970D2787190CB0572AB6C 531EA63DD1F6BD5F7732CC7BC7751DB30874EBD006978CBDE960BFBBD8C2D115C26E7CCBA2C802 131AAABC284699B18989BE8D548F30389BB0DED8FC122A1433EA61D074415882143D865E28A9D7 8E59E47EC5EF1E2C5151279BFF1D77ACAB907F7DE9514A71B21C129480FE708B9AEA442EB1DDC5 59574095F57BB3750DA4521BD298A19CBABAC650FEA7D9DDD40DFA7999D0CC79DCACD517E391E9 2EC65FE3A64CB5BDE1A203E53D73C994D53215EDA4EF8BD06658AA94EDE4DB65719A0903035679 B7E08BFA7C40E9AFC3ECC0A243C79D920B2F87C75430F2490362FAF9FF23E3880E7ADA9F3DB155 6E00470C2FBB131F539600D21238CACD785964F533C80A39605C9AAFA6438B11F72D9148455E9D 88A43178089337070A47297BE223B93CA175DAC0EA3CACA4A9BB07954449A1F9A8F5DC084602A6 2DB0D098D3EB9D967CEC1B247134B47DC120C03B66FD26FE2647C48433BB994310137C95B02FD9 54B450FF00B194F0C5A0A8623B1101B5F32589CE81BB1EE3045F4C78AD26A9C5868AFF70DF6179 F2A72599892518A45C54689AFDD92A5E21F47CFF3AA8636F82B33D9716DE11C3297C403B5E2708 D9AAA7DADDB484F6719DB1A07F42C0BF6532352BBB529478F0F08AA86E554A2C8ACB4D261C0358 CDC56FB9FB160F9CE9C7DDD0CDEAACD1FC38D9066AA1B50E26079452FA515EBB70F3F5EFE3DBE9 791161BC643D1BB3147C9A0B0563EA94F930201780DC3E97164C369C62D75F4BA3FCB116215771 0C7B87C4A42BAD8EE7AD49877F9AB41BBE69730A4FA1F83F4DF48F40AA6E8891D61F1E2F5B5AB7 6E85BCDB7DB8A8D7F3E1C5628A51246896D923DE53B1B297CC8E37E0C46A6B42F616CFCF17B74E DDA896D6075C4D60166F05F30DE0CF48A3BA092A0D2A694D01457C46089B7F573CA6A7499BDE06 098699CF1F28CF849D2716140669C98949A551A227BDDB5594F205BFB0F0379CCDC1B53472C335 7834C37292EF98DF1A5B42F2E8EC82381AEBFF1CD435499D35A59EB295CF563A574FEB6F8CFD09 D9C2E2138F486226EF089654BA218706E643BCA601DA71B7A2670A15B25523D7925D1E7BEC264B 9D5D47F30A9D36CEE25E5CBE2DB3D6E1566AE8067DA2718ACC991B618578F490DFB3B2F9F2E482 3CC80AB2B8BF562A6E5212A2A2F2604C0894D1DBE14FE9D7222E7F3AFD49D5B2344BB34CCB0007 0246A8A3A04DB4866BD9823E0C21C8C226BCBAEB92372AB547B8FCFAAF03AEDD70D2207840D6DD 0F833F8C19DB2CA2BA4F271712E2C617E84F34CC15078F9A8972E17B8CDDB1D059C53F7E34F975 1DD035E00F744D2EE8178B33B6E684E6D55186C9F2FE95F9964FB13CB7D83968F06BA14A62BB43 18A5830514BC532CE55995E1CD3C939ABAB0D211B1BFA806A353E325A73BF75601E817265F6B08 A43BCD7AE47648436A1B5285823F234601924C473B761B1C057D4C174BA653D5B0E7186B99577C 2F353E7AF1CC395EAE45B1595CA37FF9328AC2EFA8560952054F76A72D7CD91AA018B85EE553AA 532C2BCBCD412F349DFF5C37A1339AAD0F4957DCD5EC6833060E93914447483B2A2D9041621980 83838093C798878E5D558F7B51A9626F982115EEDC2039E3C583F264EAB8321AB228868F221E8F 4F9EFE1E760903FE51F98AB321D1347CFF719F4EC83B91E010961CA4F26B7BB7D4C769FD636A4A 1931EBB2668FD9FD1DADBDB6DC61AAD03C0077AAA035608BB2F6855593CDD133AC28523C100D99 C98A26C29C0A610AA270C03375AC0B9E7F7F265612B34C4DA3EE925B6BC8A98257986AD2AB4BAB B31D5E387984D102043BCD2F908573DF0D5BA1C1A59FBF2411A820DA0A6E69D1C19096580701B6 D8E814BFFC91F8068DE5D1A8C601010A53393AE554E003AE1592FA5FE0609961DCEF7D944F5857 64F66C20281424DC4BDED24291DEB386AE9C3DB43133E91401F528017AFAA530EB2736D3B6CE7B CB1E0C5A6DD5690AEF3465BA0836D2A68D6F3C5958843F4299B8B2728116952F62815C71B483F7 631338CE3FD626CC22C9256AC95D88B2F4659864B022A0BA75127BD9F4876E0251A2E707FA37E4 D5D5AEAA0EEDB18F5584B9FFDC9386C46D1D19B0419EDD812FB9FD83D531248CD1F6A4DB702135 9C13D1629EB05CEB121CDA5944020CAF186AF94EEE6EFF48023EDFE205E749942482DE061BC86F 58FB8289435ECE461AB84B09D342138561C2B4B2496022DD57C8253CE557FCEE1905C16A01F5B8 BA4E7F7D5006D434CF962ECE76E5C269A7243C826C0B7CCB5CB36088AA99BF3F3A7377A76779B6 9ECEA4A83BD4713D12BF424373B399EC0A99CF5D8AF7D5A86A390A80AEA33CBBB202E0A8BBB72B 1D685B2ED32EBA11840D0C9CE80F61BF2228924DC196B9C40F81D124044BE6DF12564AA1EBF652 41AF0DAEA563735BA4E8151F3C9820273E79DD4E10E5989BD0F291DA773C3DAC91FDBBFF6EDE1A 5D5FAC03DBABB5C2E97BFEECC08B2701C72ED14C9CA5040B9FC61A08800C5137DC617398405004 BC3FE46672BBE3342CEB1F9750CD7F4E057E098ACFA0A441C460886FD630EBF90A327DCC2E2635 9DF000FD24E56CC30E31BBAF1391B89504712D09C867D7E68A965E57F854507D7294C9671F38FA 9B768EAAD52137CEA03A35C82BCCFAE056DFC1214ED21EC9F5DD4555C642C2FF167EEA4EA07CF6 A97BB9042097B1AFBFB6FE69E09C2C419E6AC38372B92590ACD39A83C84EF9AA7DF861950F5354 046E90AF64F28B6D38CE89D602CEF86B1A47DE38E31AB242864D7BAC0EE07878CC2F30A23FFE05 B055E4EB475BE2035B6F3FE1573FFDE9A7960CE3180AD3FBDA2BA62215BD4C964DF7FA9B7D8A0F B32A8C36B1678E7297212BA6B5B72B1B0B9ED8C5F9390984240B3C77A137D4EE6ABFD66FD2BDFD 57CD46185487419C70C2754008A24C064D506D8FEE86DC8FA6B5AED30C3662766B8E4C7A0E205B EF87BFB1DDF81B236AD601F4C1B25DB98B211C1BD85BB8026F6EF5EB14901240787EB10779A7DF C70E02E2066E516BE60C726BA4E0CAE1C327A762BD30800C7F584E2796AB6A0E80AC5500498962 52B1AE178A2FD57E0A72758E794E455E1C78696634C09077DBE2233BB4FE9FD3C428506105F32A 68A9DE914C10D7D3562F0E70C12963E7FA5EAA2AC08A384995139D4EFF7AC6A1425929DA25DA7E 11E40FA431C268CC157D3A2E7420923D546B22C8CA59ACE87633D5D6FB804A1569BAE93C004668 A1EEE0DE42DD0A78FEA435A7D9C84A95952F78E626AABCCFF3752171730177C9AC44378EA69012 2F1364640C4F200D885A85737080FB67E7D1BE9614D4A5A2F538C137E92FFD914CF587F03084ED 745B868102E34FB9BC2380012264F1DE610B218B84448BCDAEA37C9627A6F8B94406D069BDE191 1E23A4AF49D64233A965F0253ED2071E61FD937A1B1B501A43021C580EDF1A1E92D27ACE0605D7 3A868177423EBB55F178963EA9A4FF3F9F11DC1F4F938E36B04DBEC953F585A9180DF530906CDD 046D5758F792BF3AEC670EFC402596BAF8F4A3052B9C586A3E17302922D66E6FFD813480D83D4F 7245224718D31E2006A72DBBB1CE84901F69F07C5EF3554CB22A979BEDDA37E0B2E635707937F4 526896CA654964ADFE8CEAEB0DC5AC4A039B7C4C641CE8C8D9908E9BE1BD78C77E272F9811895E 4F8DCF94CBC0B826AFE5C1692937737713CA4F7A5FB901FD7DB797B0DD9C6EA4F82FEE8E843C0D 799B552E44193298AFEE0BBBE7CA2F6759C891331B5C97AD2DFB0E2CC1BF99589B7E4619A715F8 AB5C88BDAA1032D90B4CC5A2B4CEE7470E56E86D4B58F74CBF8D519739BE55381B75B3C8FF1F39 45D5669B0C9F068551C7CF0F5C227F4401EB8FDC9105233154943A10C479AC9826D6366B03A775 2CA00488AA04CDAF8B1E0DF8CBACB678A26415414D1F15D0F46FDC5A379D5EFC53DB57CD66AC73 D274626739D9260F078EAA529693B112392FC5DC3F025DCCE34858856D61A86355F8A74427B073 3B6AC1C2A32B1D3FFD6402798AA093391253CC3D65595148994485CD6A74271FE71093552BD0E0 6E4BD8A55685FF784C530D186B923AEFE16250F3330789BF632F9A1AE789ECD4F8DD6055C3E7E5 40F0193CA768EE69C37B8E51C4CEC1D1A7B12ECF6F65DA9EADC0B3B77D22084CA3E48CF0BB2E48 37DA5D58F4F2795BFF4F62C2F520AE173A098E6F1E5ADCBD2BB3A1D26363F8F645B809A8AD40B7 EA90DE4A9A26BE11FA203A55B144161881665D6D1D74263AB371C31FC70F9D8AFD287C0B87BD65 DE2B3DA8E13669ABF4501ACE58D9CA150F30B23388AE9BFD053976B223E9B37D226200AF4D7697 840FFA9EBC087A72EBB45D3D1FB5EA3E3E882BEB4F9B702DCF69DA879D72BEF2377FAB6094314A 0673364D4165950458321F9190989C00595C4AB4AE76C246D26B088F29965200103D17C6104BB6 E95802B4068C0D24F610532AAA2267D6A36183A5CDAB42140ECE4E0A8EDAFAB4BDF8EC6D706CE0 562235124F1564DF380549FD931F3FF4616F24E9FEDFB3C757570E60D56D1F3568E575A35A9E5A F59CA70D9D0CF142A3F50A396807EBCD83E58AF06A4EA165730CDDA6E363B2B1F0B060645782F3 70E717D38A3BF1552AB327AE0F9A155E15925A64D0AE25D00C5FF977BF824955926D8CD2072C8E 41591597E6907300DEB999F06449CF393A8C0A04EC6A9430BDA18F680E6B9CE7A438320224C47C FF64783FFF47F55CFD836B93163BE2C4D9E16C0D38E0249FB1AF2E6D951C89302C7163031AB84A F4A2ABD01EF9AE342F5284390AE12EEB1FFFD93B281162F01AC4C4FE90A4E5A53D27802A647496 94138C6D66079312FC04FCA387A5939556C12130FB04FB892EEC36C7470EEEC2739378F96B6392 2668A33A7F868518F380DC0E91CE2C90484DA50B6954FD6AE5B7A10578932220D075042D762CEE 4AEEE034A4637CDBF7298069DD2FE8D74265ABD5E4BCEAB81425516A38442053CD3AF67E80A50A E9213D7B4AC2C62E22A73DF69F8BD5E0C6AC8C688DA644EF6E20210919ADD9D69FDB4D5DA26B06 10E8DB9748BA445FF931E3146E5937EBADE4C7FC61303004AC549C1900F5CF8E1AB0D63F13CD7C 5EB22E21E9FFC31AEDDCEAEB76CB869253111EF1CFB6D8162DA3E59D77F44000B96386C046861D B1FA14BCB2C07B5B373312468AD8D73BB483429A22A27BBB62FD087A0F8FBBE23CE21F3F49EDE5 F0A329993AD337C393F1332BD534750579A3E72D194B04EBC430594D4E181AF8FA60618E1502F9 3172E26B55E5AAE989BBCC48374E8C6906A34BFCE114C2B2B4ACEF9BD7F8CD81A44F855F15CA88 BE8A56AD1BF77EFAA5BC81C97B8F29F878F9091D651D5903E3F60D25EA1D97B6025FDBE181246F 05262E430FD57ADE69286353EDCB572069E25BCA99F3FE8744ED8297D933BD7B5F5687BC5DF1FB 584B8207EEDB38FC95BC6036342B012CDBDCE4F565B6D6DAE2EDA1B4F40B054DE50043D7AC9C3A C0DD32F1AC2D38D0230231C17D2EA583F5740A47CCFD0FAB920FE1A49914C663D8CCAA9B1C0672 055483B762DFF0493E0D46643BA4458DAF364512A3C72ED1AF38DD00FFE18592E96DF318B7C96A 2FE3543688CF50562159576FC9D051B6BFCD32A80FDD537F2A88DD9061CCBF832819F09570308A 10065010DB72AE096D02A61092961094C1E383712FBBB58FB322ABCD0CFE77B98D9C584AD5C9DF 53EDB81949D310679E2D28A2D8B347434BF71445EB9F9F1A2C61B6BC16EEC4C1522AE46C5E9984 1206FFEBC27388D4952FE629644F6AB7733C457CF939C324DF0C4FFBC5E7BECF655B1F09670D17 421CFE6C9A0FF4C4D7342E8CA177A602E7FB93DCD456151A8208C332541869298A0EA29A787931 906B0EF099CA32F975496AB342130F34C92CC5A863029E030B66D3626C88F4887CF5A8A92AA750 E5660AD03EA55D69EDF466D4AEE45067D5496FF91F26BCDA766476CFDE111F227FC7ACF6FBE1F3 22038A92031650E9B813AF16A37B4095F039DF57791D3F8242C2C409B37D045001C74BB740E2BA 0D29CE658C65510AFB0D899C651DFC01752F9425D5B152436B04D5DF36DF03F11E141FE994BB0C B0B7E37D5ED5981FF91DC25335A480ACDB25C48C20EE40F66F5B482A626A4D0DD2689D862F302C E5421DED7429235723092734BC73D00F56419927120414CF8659CD1F964128BB6FC105A7E090F1 A2093CDB77BD1C04C723E0F1C5F60BE70AAE29BF0713F86C58DE426819D22390DC1D985F2FF86C 08EF83F2E9AFB3A62EF4958945FE270950418D0B26206545CCD081E4DD18C9661BC8CBB4C2AD15 1F71D6BDFD16F8FC0E239DA5D19E8C2DC980C367B7EA589A5278901D913600A2AE6728589CA00C 44957816D98775D86D9F11C086A95601730EC4DAB3306ACAA840599A785E4AEC4C0B45D14800C8 0EA12E04F69836CA05D79543A7D7043DDE89BD573A8A937E27DDB89267C30731E20402901F9042 675860C2C1EEA408F35561E73301F5DD52591A59FFC7684A1FB9228A3CCD6D321FBAFD05718411 DCDC2ABB7A588C8FB14D916993B5FBC01409652E5818F2211C86FC21FE154B464206B642B12564 A6F4A8F4FD5ABB6F48E959FD1BDB8C413B2D6E12EE5286A805117A97E3829DC83F431AAE03A6A9 3C97DD6640E4EAE56AFB44C1892D3E531FBBC7C1ECEE90583A72F6CFD618CC01E0DE8733D38568 2600AF19FA2E08FF0C29EAFBE912C289E57F0C315AE24445F1A5AB2F492FA7A38A4886FC0035A2 7E793BEA877210F272D16771C90B5BD86267F889D3A25546DA863A100005511CED9C95A1E2AACE E762E6501DF03F146719D3581365260811105609E56239B54D7AD1F0AAB6C7C168C7DCCF3CB30D 06080F32E815CFE2784FAAC58AEAE4F22D72CFCA289BE03F9B2DFD27FB1E2D27572A7400303398 47AD06137695C113E8C2DFC0BAB9A3ACD2A856D9E7927FEAAE009B6F0CB84F76A488CFD5205AF1 DC4313B6E4179B1370695509FEE3E64A9AC425A043E434ADED0E5985B293669D09968D0AA231E1 B2F617CDE5DF2A681B2054EC1FE239E95EE1A11823F73713F9CD4AF03E13A78C2442B6AF16360B 01E8CE7DAD91717567BEAC799962F00A3509E24E4C4882124006B252F9A4C88071629A9C2B7104 6483958A3D0FEC7F0A48FFD5E98F3C49B0FF8BFDF5824DA3605980B4D72A8902ABB0E0F52636A1 06605CB90404E57B49596690E4B0591751D5630148B140AD0D2EA236764B131CE42AC418D3EA2E 2DFD09FF17D979E54C6194DEE059501718A14F86ADE2E231842ABAB8A6634C0C31C3C125048D6A 0E96A2BD785D51591B79E2022D49F2EC9BD874FC2FD52A7DCF644F124215C7B9D3DBE9919BF9D2 138F0C75AC93F48C7F125973BBC8EEEE34502A62986FB8CAAA8242E499A85E43387264D3982838 791590583BC2D74F1D1E3A4F4723457077D8E538BEB749D35F44F37B86A26C90951CD56A0E5086 74E42A1EC33FA88A47C248B2D9783D4D788082B89368D73F2EA3131A0C78DF9CB707A0F65F3AC9 3CC6E81866BBA0D87902E04CB3DDE252CF76344C2A2EE70C9260BA8C4DEA508D5B267A9E852C75 79C062478C9F224D6CD544047E6643753F6B9D387EFF69E37E8EB61E6C50BF6CC93845070FAA36 72EFFDF8F0EFC7EEE9D42594D1786BC7F3280FCADE5027ABFDB83E6E8A72C457BD6B2739D263F3 27C5E0BD130514D98A5FC840558E85017D289816B13C0BA1FCC6ACEB5DDCA6B7F4EE30D1D7E617 3D9B14A16F330E9D32BE3CE1B92F18D2878A2C3CCD52B2103B082454C60724EC75B08D187E01D9 EE3286D69B9EAD4D8D35AA8BAE3639B7E36556E1BC86143C1BABD3D05B4CFBD918C4171B3CDA77 A1C49679016AB674530416738945967896E405A3A7A451F43B14E7BB3BED0CE014188779610F21 E869A79245AEEDF2D01CFBEA80B9295AF35A7085E4019F499820420BC15E5D3D8450AC979E4499 A894699D154648A74C6443EA53C851E67F80721930FE61C346207F2715F3E20418A9F58E4C12CE 9ADFE14DE865DB21085783B011BF1CCB2C3335A55B61DF50486A9465BA7BA85373E10F7AC3202C 15806C98F7A8215A89DA4424D4B16A5E352AFFA05A58E5A6B0ACED834D87E7EACDEDD65CBF741C 9EBEFDB86AC1975BB61AE096239597DD08156D26E218A61C1B69C71953447BB7CA6C055F2637E0 B2E320C1EDD20B7B4E43DEB395DA221CC17F237B81098232567F591977CBAC8678870E1A1850D5 C019E56069F11037B2C983E61BDB9778C50BBC9FFC6CC1CACAEB4FD3B4CC131BEEDB3C486D68E0 69303A06E1653DF35D6421F93F05DFE32BB953E0EF723CAFBED7DD829B2D469CDC9F6FC1FB6F89 4BBD9785FB48F1A89DC2E1208192BB44E7F3DE2D632830894A57B950C7112D76AE978454E0D666 3F97E8FC2225293977FB65D46A5A64B2BD75DD681D4B5AA39202CE5E6846B872482765F1086FE4 6200918A34A9C0375CA555FF25C70F075530965858942F0BEBC9CCDFA2515D198479BCE058BC5A 98E014F017D5239CFA21C5801B13619642DB5DD9A2A16FAF1C7348135BC59E31450FE5824201C3 99E397C49DFAF1E8ED16054FE187A136E5A838976A48A1AD1AFF50776E953287C5C026CF2070AB 8DF13E926E668353197C0DAAFB3BCD64D391E8DA10AA80C798A914D219D0AC05A00D4FED72885F 408293D9E9D952E47CB8CA81F3797350D50EC0B74E526825DABD3D7DBDFBAF7AF4781D11C82D54 05AA18F1BD75F7FC6C2B135F34EB3B29599B7600912F23680F5190B6D9B06D619B26F1D086D122 51305AABC2BF2282FAEE69718201523BC2877A640EF5FE8A68E1358BC8C0A185C304D9986A6E31 FFFCCB726D2BA189FBCA9C699994DC51F65653BBFBE170C39203C4BCEA90E07FC0F45D0E788D45 09948A4AEF90C62CB4D5126AA30D655A817288039460D3E8A0450B6F3860727224957DEACEBA94 86994D34743A32EBDD7D0E20A3E318F5288B5AE38428D3071D5DA2D3D612F23617AC4CD5EE84BC 8BCF391C4AA0B721FA25AFE0705091FDC0ED96094B19CE0C8716F70EEC15579C95E4754C394895 EBD7D83FA8B9DD8B7134E6989D3B51C47600F053EBC134795BAB7C2B7121698284E9313C442E65 C1821476436FED31A80A8220F02B781A3D19BE6E483699F7E809B1AAA0FA13DABDE873C7DA491C 02499F9275DE49A900DC3D624FD28F4F1F88654CECDE505D7E3E449DABB1417FC03F3E0EF42F71 0F952C7DA729B45BDAC3F766F512984FF02A178D289954D7FEEFDFD6571A8A36EC673504F0D737 FD41CD8384B06842BC686EC6B4F3B47E4BA7532649FD57373EBA8FFAC961981C381F2B1C731709 A9F210E7928F13185B3D0195965330D0F4DD1CD09E008DA25C067735261E4CC2C66D3FB1822E44 7C2E3C15E815DEB88D2DE9390B179D4EDFEA55E78AB2B0CF12FEB75967D857A604075FD20ADDF2 8BCF12C46347463A7BCFF3ED8ADF441ECB3F17F799B3ACDE848CCA5B920A2087EAED1302C2F000 CB9396EB83598F891ACD25763F567BA9E5F3C4916C62D8DC5FB3EE188F40EABA66F51AD59F7256 DC4977C9408808781A5B790AA26FE9E3EB1118D535A76E6445DC5EC4554A4C1A06FD082C8C1D4D 29B3CD4F77CFA9356E7F055EA5062151B272CB8A036DD5F891E4DE82FBC877D9816F4AC9EA007E D58201808D17C5B7C0780161607EE88B6640780D23870D34892956B561B0C1910F3B1CC8261FC4 17C49A520D7AEB3239B7DB86BC800FD1014AAAAE84DA78F2FABDA841E82F102913C89687FB94D4 3112FFCFAD37D49D2532F9DC3506F54CEBF3D3D5AB4F32D96A801CDCEDC7D9002019EC48DFEFFD 62F7879D0C9FB2CEF3BFF219A397877377AA2B970ACAB8361CDDBC1F38C5F7D9397E2272751DA2 CD98CC97479CEC135A2496048FD8050FFA680BAE058CA5264E738D1699826FB12A96A6D328CC03 19F501CF5AAC51A62E6F587FB2DD98881D69FED686B64D92FFC5B1AC2C957EE5F86CC9E5BFAE3E 73E6507C5809A576A59268341EB5E3F863A69F0C805A98696A5D764E714C478B544F0095BCB352 7D00C34A67EFE6D156EBA4AF22AD493F7EE841A8489818047663C145DC04BEE4F472544C9A2018 2147E184BFC894362E366A757B586FCF92248DDF8B29BEE94B4444400B1764EAEF6CC8110F1371 D34CC38A939748CBE0226C110DB1C67EC241F07953B61C683642706930266E07309655962648F2 5E981598930F3EE4EC0F75614F777742D6CC0AEE86D7D5111D11D5077297B5358425E660A296D8 3832D37985D710E0F9EDA67875EDA4B75457A9573E3DFFE441029ABE0494EBCDC90C789186F0B2 97F90ACA2D3BE84610AF07E347FB7694FA4E216A2386CBD1EBE70967A82014E8503E2E97AAC71D 60DAE00B786A95B8428F7726BA74BB3752F56894D4813D0434D0026F1703DCB3631D69082B5D74 46AF8B5660688DD97DDB83540E2A69D4F994FD94413CA5AB52325439224E0906128187180E42E9 7324CC2AEB60E5B327CA998AFA49854A59841C5C50E4159242BEC79D2E5BDF9373CCC510B3FC38 204BB02BF88DF702FE5F2CD11123C390C6EEA79F7F1C4A294A9137926957D70C47D7EED1047079 ECCD09C2BDB154A95A4F5BFC6CB708409E3E1A0DDB421F3E26BDBC0126212425D68F3218DA415C 0B03792A561B6B6E02D84C83534866A8B4397D485FA947E66839BA118BE6475A8EF384E597B99A C24B83ABC9890BDBC7946F07C43535A9C0C53C6BBEBD25E85D7DBF87394FDAE324BD1CB4288B89 31D3BF747EB89B356B3A11F07585EFA4E4349A40B409AE651D68E611122D21D9DE3425EA845568 43A0E9D638B1C24E55992D6EB5D7A36A8035B9AAF0D8D71FAB9A3C20BFE5FC381E6E353C8529AD 44920C2B8A1D4DCC09FA6DDAC7C540D24FB55D8EB38C883431FF49DC1DA22445A6CB438E6DED85 699290D3EEF81BCBA53D977C0B32B2E478CEEB7126FA359D4EA3C8EF1D0F6C3AF075B2E94FCD5A ACD0531FF179735D94672A55C1D1FFC3842BB13CCC3E4C81B706A6830A1E502E954BA2F6D57CB7 777CAE7EBE73ED1FEFB88F4E27DE15A052185CF9DEEEE665F38703AA7AF90B0971628BDF8BB1FB 21A30C3CAF7495425150F6E53A58F11BB6CDF949066CAC1352B7460D33FDB76287A7C55C9123AE 5A2773E720509A9F3D391553BED505C28E8A68EAB0C4231BA858934FDD38C725D340F21FE656D0 002F6571A99FCD9AF5150DA9B55D796F9F30F4D10A7E82DF3B55462BE4EEE3F22D484275D60F04 D3B1C83AAC019C0C46B68A1A3357A65A22A36CF319F53637DA1AEC7C0AA003E75491C0CA77BB7A DD734E0BB7AA3A30ED0E228080FF71B952DD328D938638738697F06831826400DB73D6E2B260FF 00EB6130B3868D3C204EFB65A2F00CF5BB2CE4B464E5EED55E7CE33A1702D272069C2B291212AE 0F7A0D3BB7B82DC5FF2565E40B0963FFB9ABDE6DFE0A5EE3BBA96A3CD74D4E9035849C7ED677F6 84319FBEBA5A5B1B2B9230994B2EB643B9F395096B46A7BDE84230662B72077FC96409F1B237BE CF8CD53F27F690B101799B9FEC896A52609FB368DDEDF466AB17CED2E756D2A9026D4D26E303A2 CA619F746C281A9A6AEA0E08CD0D1A7AD1F9CF7C6EC91A35AFCD6A1F59815A702558305398B0A1 4A5AD71B085B9B10325C732D229A9C98D8AB35E99B31CCC4DB44852E5BA6DCBE8F759F54B3C10C BC761C1E576A38A788BF5CF46D68F8427E2ADB16E23A8744039F78F637BEC3D8F6D239185E9381 82475AC85FB8112CA4806D13455EE4A903CE5C7C7D5A8BF0949D70740ED6EFD38866D4645028C0 5F16836C9EE77E775626BD67AD61EF9F6D7B72680564715641E460E09A741F30777FF1CAFC8B43 664F96D15E4F218B04D462C8D8AA91B55765927B41CCF8B79F89D4C95FE5A6B55E943516C8C674 0F43D3681FF8962A0ABC7BAC47B06DA27FE8B1FBA3039595F52CA33845C1A7966308C006D6F828 108603B42229012F5366B77C654AA8CF6980FAA68A1796A1C9DD3C8C01D144CE40C669634B2FF2 946907DF407A2C5F577D3785623CAEA75F5D18E2B3B91D595CE8BAC2EC742ED54F17D4F912E115 4A6866A5E3DD49EE48B407FAF34441502C6AAEE95DC123EA266C27F6924A44263AD1238FBC0C88 22114FFD6FC5A178F22D993639DFDE16B1652881F7A015AC88722193BFDF10DC1C372916234F11 591016A8B5C2055934EF10C079DC83BBCF396DD19C7E9E112F94A871ACCE631683A8C886E4E10F 218A7AD93B0F4F83B8418C0984EC0EFC3ACE47E7583F801D1B514FE3FCB6D4ABE5B6C3783F3026 502212E265243963F6F57656ED205CEC6A8881F37B1FCFD2BBFC09D1608CA43EEE74229369A215 1A916D40B2650E823BFAFFB9338BB43369CD38F0A351E320DB42BD62A6B1A53E0AF4E0BA92DA1B D5DCE62194D041500173E02835DC3C5A43467258A4340C1B6DB48B612D54110D70FBC038E947F1 80ECCB983D2204567BC2E256C6AE46CE9C13E6B576E2C9FA5A00840A61D078C80C1C7405A6CB66 BC23CBAF1C5CDDE62CD32A84D587BB2B3828B088C56831E6C073AA50AB4CF27FC74547554C491C DAC152BF20AE1E14E31A7EB4C45A11DFBA32CC6B4D47488B950A43B12AB7DF7BFF07005FB64503 D00EBB085706EF3AA04110C671306F763273E16BC75323AEE529DF5EED8CD07BED8A635376AA88 602674B619B086C8B46339FCC077399CDE9F054D50AB2EDC80BC73DE4332CA8F8FF3D4A2B2D461 3BD0B29C7DF001FD3B7CBB4666DA2175252E7E55910DFE6706CF744CB7C24CCE4CFD4F35D0E0DB FA1C336240743562FD040687693DC43397B012390833FF786416BE97C2B8E16897C3EF5765C988 7CA6DD1A3A5B2CD07507AD852A7D694F2FB9E1B8EF8D0581EE6C80094FFD048A1623048C4D4DAC AEC1303516A43F08736C003246885184E73D8C0312242C33F33C5FDD86B4B952F86B8008FAB05B 38C697BAD2F87115E88C90B3F70E53BF6CF95E50A39FB028681746DA3431DA246E7423E8F400E5 659141F09EA274219F1D99EEDC203B1D8B9696F66EE89643B6412ED2C3F41CB9385C30EA9332A4 5CB359E2739612D7FCECA55C2BFDC4230E5CF89E7021F4220C22B6913F69ACC5F65D7374214EB5 1EB691C53D0B1F590F458A4D4A385D7826659C77EA21504A7EFB22758ECA0497D059437D70CD94 05DE2EA6BC506686D07434C6024273B49C009169E31F4B719429CBABC11473EB70F07DC2372D11 BB2C146DFA378825C0F2857BBE54EFFFB74FEACEAF15ED6DA597FFDE9377697C0E472B7500B9C1 6097BC50F38651D40CE96C50C9A6236860A8BF8F469F83162324B5296C50D430BD211D8BD0E4EF 0101D6F67DA8C348861E85B35A2A4992D6A4930AD1D26C6BC5CBB999F83C727D5CE551B98C9043 D10A648D8FCD959C9D1F83812CDA60FFA8F8C3F88FE8536CC3FABAF59C5C174580B98D38971623 6284CB20F900D8B793D37EF566A87963445862BA4EFA880102C87F608F0CE734212B0324FB2D2A 083AFC582CA20B744DC01BE3862057D746811E95687D06388705421C1B8DB69218A2A706D3CBA7 8A449B344AF0F64DEBB4FEEAAD2C873A42B2A934F93C0BEF487B33DB2570723194651C204F1201 56E09CEA13151E7E49703A3124DF500E780CBC62DF36502D2E6F5C57CFD1210850A2D35AA40A55 603D3E56591E33E7722A282D6A8E1674495E12E348954B7CD0F4A4E4DAC080824795188D8A478B 243EC611CE5901A9BBEB76EB041AD162619EDF1D3D83ED07F1152401D2D5A03E6C784D6514EB89 6ABA990FFAE09BF057B912A27DD2092CBF5157C904DA4B566114A37A7D9AD0C0D717EFB6C4AECF EDA8D6971897E7D0FB1E685AE00CFA46F11B4820B31EE99098EAA2505E531BD1B07F41D550FEE1 16F49073A12E482E9194C3C5D914AA944EB0A857AE2B5647A2C9519AABEE5ED6F356852C5F14DD 0852271FDDAA5F229AA7151D9ECFBC4861D5E89AB66747272FB6B8D49ED0709EEE054CD07BB917 606BB005B6B2FA4B114536EB0708C08B5D7CCF46EC19038D93EC063DC3DBF39B25EB301B4CAED5 05AC18AE74A0AE4494AE38736B19FC4E6B10227CB30940BF72A4704066D1D02626EF650C112A7F 8B8EF4074748BC08CB9DF80A0393793BED309D6DF2DE1F3D8765D992044122AB317749A3F96D1C E8CC520555B4C2352A4FC4D92947B60F13B9D5B7A5B47AEF0363A31CD9D35DC0F34A051E369400 D2AB68DA7BE1F1A374084B5522A6BF862579AC6F9F45D1F29E7CED5041DF262CEC4D529CCDF8A8 3A18572D65E59582F8D75236897347892D9FD0DEA75BABD0C31AF5D690394B228E835EBC6A5F05 AF40BBC6B35F8EB3C9F76AE440CB1A2E88A4F27510F67CBFC15DC29D82BF07796F6D8F793C34B5 D308D8764E9EED3EDF5D328FB1955CDD0719BEC23077A5080A88E9C95C705AFCF13C85DC533B77 6A15AE7DBC452BD2A75451CD7FE36C2B24B9044DFD9784D6B55D79BD164EDBDF735E6C486C9C9F C5A3462212B66C2E8B3C1DC01357B02DFCB8AC883E7EC27F519001E5E8397D81BE41EBA7BEB413 5A36C4E9DDD08D27C9A5B9AEF67090AC69F122DA5DF10A086ED8EA0C0A8D8060ABC76E7878AFD4 7444B134EDA8D78E2271374C7510658B16A9C5C4833581BB7EF970F9A6A4F09B238EFE5A8B433E A5162C9851F74F75EEBB1A4D57B0EA29FABFAF4D2D7D8AA8BC4132BCFC9F0EC7E841288BD234E0 6F910BCB4456C7ADE4182C459D3D366E2CF72BC6A633E830DFD85900C3696A11D2C6B79A822880 F3560DF7B51A37FC186C48BB55F1B91DFC8622D193C48438CADD95022B3269A389C2E60C9C2800 82C096FDDA6DA3FE1BF8369F4FBB5AF739485B83BA055AEC9DB88C23DB6C5F751966D482434721 91E85857517308281CB32C386755A1159B1ADD7181405CA3D686ACF18566BBE1860CC3D4DD979A D6125C6A796D9C5B9B19D03E01DC7C0502F8F7E330A87F8AB8DCA128F914DBE36434DCA8B164DE 558C9F3A7B39C07135CDBAF5C6A6AA5B21972EE56521C7C21456BF9D462BD8EC6F838A006ED0A2 84EB344C819791B014BCE095A6558B5294506EEFE6D51C935165FA4D0344498941A5E42116BD4E C9B9F72F4AA2FF794981FA5C9F5FDE59F62427BF17BB7F0B2AE94786CA197383A6965214895558 6540A4DC1071767E23310C3BD9877835098912B16EC2AC50EADF2035EB7A4BA2F48F028414ECBE 0352BD409792DC1B9780A10BEF8357130C201917FF4956437DCD2E35CD0B5629AA37EF7DBD6E9D 057CBE21442DB22F3B9CE9064289CC8A3882A6934C1C7C3542739E1D56848CDD2D03701578FEA9 AE283D393AAFB58D5A93A16B5FEF33772AA47EBCD4A33B06A2CEC3B45C553B5A63B1A33EC16FEA A152B1D248C207924A12FD27D871175591D93E23EF5108534FC75C455311EE8E3F2AB408A2FAAD 738DAB33BF98A3396CC6D5C3816B65E58D8EDC18C72CDB15540F6D62926F496FF4107A52154233 FD73427D3C00C4455A67705300681ACD21931C665E9462BCC800D25A31A6BE61519FA3487E6721 6BB21B579396CEB620B65FEE8FDC9CAB02CC5D5C8CFF9A284274A26F7C5BCEEC6834176F63A1A2 7A674025A61FDA661584C04D5C80F4DAF73A5362F67FB8064D5079406EC0D115A79F292C893EC6 0BC24FF533153275E178AEEE1D0C2C84D28D23DF028FD364FB2F9C13141098CAFF49C322A9D8AE D0E5F195FDB307B0D27D89EA917346AA73BCC436120E711FD36092AD7CBBFEFEA3C6F371D0D29E AA047229A12836CC4F3E1FE539338D4FA9E15E2CA242B768FB35A7E76756DC1EF247E49FD40438 19F917F93DA4D40156E3AB93E5580B56BEBBC1899C2E3BB68CDC5B70642788FA475E1F0C71A532 739F4EB3C85FFDAE230FE92143B8FF8DFC928F9F72B97701C2A5844BEA5D263FF3DFB11AF92B65 E5846A68EC81F9EF7DDEE362121AAC5DF1B0C29C6C32247ECB52A9725F65BDCCFFD0EE535C8C77 A02E44E274988827C05FF6C78112BA5AE29DD7AF086ACDEF0372B198E0303A257386315392DEC5 7C0BBF78A04AA1FF28F927FF6B0AC8A76A22B56CA963B779E2081CF3925391C9027AB0C5533EAE 1B22843F0AC72C2964456B56D8BEED6A3C76D6A675488C43471401ED4502351451C1CA0A46E380 D41E370D2BC703ED34B8682FAD0E9EA71E4A5CEF5890795E2B5B09FECC763FBB40B6B2E8D07383 CDD0B084612AD2266A4083DCC3A159426D3420B81B1041C5EE4120C925C1A952EE6DFD759908E8 E1CC882C12DEC431C4F66EC3B5F3CCAC728208F1F841E477A276ACA2F42AB5399F762B9C70E728 39D284531908AC8EE939BD049BBBA6BAF1C536E40DDA2412FD9A6EECAC2600C49E10092E73B91B 670AE675217BA39A808ABB34E535F5CF9A202417CA625121DFD6F4434155BA437EA16D0B6B05CC BB3B161785B3856136A5288C4D14F406361CEB32410BBC3252ED6497690D49A3A89C40A16F66AC 8F9D80411BCE174F5D57BC07968164BCA4AFF626B6F675BE9F438B461D2A35EE1C1F559096BB04 2E174AACC03CE5C68667F8A59D2B2B7DEA85040EDF8F3175A14BA3596064EDC67058EAE7F60BEE 1759694129264973E259053A70FDFC27E708A8A1D40B451061101C6DEA814F7C9318067E561132 B57DCB9C67F7DAB6C5FAFB9DF7B6B53D45B8D43F66469DE6831A40A5DA32A33D5FDF9A3F266A34 6E4A2E9D52F68599DB0138C3B08436C0DBA0A553F6133672860345B77353BF9EFA3FCC80E49D8D F84F85F1A99F23BF470A9314DA381370BEC348A37EE4517D3372D33E528F137A787CA9956E9BBC C8446E71CFBDC6D92B241AEA8A62B77F40A630F5E72F623C18C9B499DCF511FF19C40E53768925 8C9C933CACD974680F6E443BBF3CF00356A498C63A56F68843FE5BEF635A4A671874A33133D525 E632A10F62A36120E5BB9C2216FE80DDAE94CB7540669FD0BC404D361BFD34EA879E50A44D4071 949AFC3CB4A4E4181CC30DF9DF63A6A30B38EAFDF30158A1CB45F2E433FA4DC62763B6CEB411E2 442124F95DF503C4FBAEEBAE7681532B9E5936716F6D585F51B9871321D5B7FA5BF4704B0A536E 78D00372CADBFA191E5E3CE0AEEACE1D6586E9D11A0FE37C9824977FF1E6F95019930510137ADC C4A4F4C4ABDF76CBD32FB977534DB8F49EF673AC29C1A559A1EEC69F0EE5A42A24D20327CFCD0A BC278473031C3F2CBB34BA6E424D990AEC6C756293821C5D439D4C8F54319C4BEF22EE740DE2E9 3BDF51B15FAC6E469A01C1B5C5690D16F9754A8A3094E751FCE11000F991C566C7C1B8CBE772EC 80B2A751F829A4058A28110013AF4A3DF7DD7124DFF0F728A25EF78F78EF33A97373DE68D38DCF D1E29CBF549011A71ED451B1E7EDA255A14975FF44F1CB448B71B09E82E8DD5EF75716A6E32620 658D229108B8209287C2CAD6346F0E8BBF1EB99BFE8952C4080AFCB21F58DCDE2E73B02428D2DF 7B29C43DC1DF324A73F480685198F8006C996958AFFF6A55B459DB50FF2A33EF43E31923518FEC 28598D092D8205300026E04907332830823CDE60D062E0BA04CE7C801775012B4835AEA56FBA80 21097BA760632CF097A0D4B94B5BDCBC2E61EFAECC791FD7202B00E678D6B76F891B918F63D494 72BC7C5EEF4BAA30ECC71B5DF6315A71095F9E769DD0887C4314AEA236A8EADD9DB780411C0733 7E337744BDA802DE4906C3F98E644C638E4C86D5F2A7B2C17DACB10DEFBEDF030A580AC847C0AA 56D4D4B30B513BBDC1105978412EC2C36DA5E4F1EACDAE3426DD48898DF1DF0B0BB91C3343B487 14EDAC8BAA025AFD729DEB9FC96432DDC0D782D226726368B516E8F266855D7D02472D605AB245 084B55FA61A0CAD04FCFA9623DDCBE109B2AFBB69955809E2989B5453793032D1EF7D7D8BD4E10 1456DE181A8D7DA06EFE2644F184928270400D29EA969154136D1E810386835E2A3161A3074BDA 1DDA9B028910927B84B44C52DA2E3F0CC9033A1ED31743FF1D04D281DF1D62735083E0AABED00D C0090B1453FA60E5D16AFB16A02DC028A418F357951710B45948D06CE7BDD0BECBF3BC2B9CE44B 6E47DE415A655F6D78DFC36995DF01D28BB52F750FE557FD2A82E36C7B6D9CEE9DE4326D69E261 74FCF2D3F78C7F68EED0374D80929FBB08419C9D2D7F55D1AF8C3639DCADA1C7DFEFB7CC17D807 3614A1084659277FF822BA6DABC3371D600A14120DADCE7A1F29257ADEA32DE6186D1E2FB54ED4 B9BEC1F268B90656B224757015C35355841698967587305949A7158490FCE4F1BCCC2A83DA26D0 F1D7A9912F8462722A58F5D0A7A4DB48F527B1AC5763E6B45A41830E1ADCB09E0F336CB97CF239 9513DFE02BA8334B6A7EC74C0F3B0BCC61382B69D062304DF98B09F1E13291C97274CA134CFF86 CC2A823BB8A1BEA31B8A25F843B15273D0F1BEB8C18B3A2E2027334A27B5EFC4CB0068C79E5CFB AEE391D8BE2C4CA0F8A630710AB09C18C0DFEDE175ECAF12063631E9B25C6C9FBC3D49873002DE 6262BCEE73E4716DC30D610EE5402597F514903E5EEDD8A75E5A6FA117A21144AB5B338C1D4B35 9210169EA0726B14D99E48834DB5D15691FD9095FBE699C46C7E6EF3790F6005C05561E053800A B8E261C17CDF355646A1BF29414D666FAA5C1EC43903DD04678CD1B5097513C0C69EDCFA5D71F1 D3E540EDD11D4B72ECA6C590A57A41EF5CDBB09DEB1FDD6C823E10EAB9E6B9EF02F4045696D615 AF4E01796C2856F376F42940CFE098D303C741D0257EC3CBD7FF2D33ABAFE8DCEBFAE575ADDE66 CAE813A0451E5825AD0234D045630711BBC3853D130544E0B0E787218107450078D6F380303DA4 DE2A39A9A689AC4337D255477A7D0ECFB746E129F779D1F45F86F7F0E141923AD062E6FFC4134B 6B15B2811DDE5902AD397044466318B4356DACB9C6DF0CA786D3D81EAB52975D5C6E34D32B28CB 608D91A4833D5D35A777AB115290A4BFC8EBD24846736B0997FF9D5DC471AC673984AC8E8BA510 95442EF37C5791C650C3A50A2907E0447A6513359D001FBF3EEB4720167AE69D2A6E2F8D068DCA BDCF141A61A956AF4BE6DF3EA929843344F2E38951B9EE4D38D2E51A195842E61436C77E7D953C AB3FB8144AFDC371B0DDE968AB88493C15585570F7DE881A1724C0CB6E8A3433E6E85320ADC362 734A1C81C1EF9CEF1B863A803F96B5F1F61A05D61B9992E99BE5A52A58 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr03 %!PS-AdobeFont-1.1: LucidaSansUnicode03 0.9 %%CreationDate: 1994 Jun 04 09:58:17 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 03) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode03 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 148 /0394 put dup 154 /039a put dup 166 /03a6 put dup 173 /03ad put dup 177 /03b1 put dup 178 /03b2 put dup 180 /03b4 put dup 181 /03b5 put dup 183 /03b7 put dup 186 /03ba put dup 187 /03bb put dup 188 /03bc put dup 192 /03c0 put dup 193 /03c1 put dup 195 /03c3 put dup 196 /03c4 put dup 199 /03c7 put dup 204 /03cc put readonly def /FontBBox{-615 -440 726 1024}readonly def %/UniqueID 5054503 def currentdict end currentfile eexec E98AC76D0B9811AF896A7D2786CFE5F8CE68EC0023DC2681A7AF04C897A42BE5FCFE91943239A1 3AEB5296C6852464267094E08A45F9BE1C443CDAE11667C6CF7AB42711A6CCF9077E8A2D8CBC30 9D38A0BE6B8A865AA6D108DC56579ABCEA85FD25326DB34A8A3B77A5424AE4100C2EB6804EA369 AE0896E47334E66BEF4DCFA3CE9DCF8BA26773A39C77A33652D76918EA4BC304D746DEA74382B2 CD2A6283142BD4605E129465DA84867CDB60E18F858C99578A3DD3BACCE03A8A6990C27D045C3F D9C8550A2552A64F9F431169CC4AC1B9B275DD9E6D5F3DF5C70E8F657DA036CF63E714A17DA9FA AF96888F242FF964672AB6D9CC68989DB538723337304795EE327BAB72CEBBFAB6A376093EC250 7E6CC4E11275DB4AD7283811195AE1AF7C8235D220FAB9F10C43D291F873D989F30F3E2BD37AFF E5D4DB432C168C065D446F0B3D58981E981E9FE5CB773EE40AB01241EA403188FEF5B1AAE43FAE 7DFBDE6A367FC7D6F418E569D7CC7B3D20FCBF2687397122164A647041D12714798560ABEB8867 B266991761555A15A26569EB0FBD0137EAA54C1EE6010F0793B0896AE1CDCAFDA76DFFD032108D FBE81D02FF87E094C0012FDF048557854A7951C19C117397A81FD4C8F2D32D5AD9EB1E49580125 3BB1516DFADDB20EB7142443A1A133A5474EC8EA29103BE5554C41ECAFF76786FCD0FEE4971FCB 646F02BC421A7E4D1E5E0010A9079D17364753074ACD18630A5C6ECA43EC7C53C4B1A5DD0BEE88 9201FC8DFD39CD0C81863BD765FE7C8CA2A69D992034D8B8B9C3486D26DA6AADB594B6EE99959A 445C809D1D3EBA95FF9429FB957EAF9B9C7E3D814B25CAC10658218FE2993828ABD4C0A7650362 981E23E95B851A8CFA68B80D4DF911F9BF21343BD3E61DCFA86F20E96219FA1B9713677BE05602 A6EF36F450877DABB0E42F2DC22538C31B680915A634C6D34464C3EFFCD75E60B73428ABA3832A F9426BDC82D30589727058692220D02B5D64DA3F8F06BB80D08B77A455702FA9F2A3822698E02C DBAB8BF4E63E39D377C60853E3B8F7B12AF04BEB45AB27036BBDCF6C58A80E3B3A61563E026C72 4CD6E7C407B7404F301E7B1AB0EB210E41CD5148396089023AE9401C80831E627EDABFD4E30E18 EAE2DE1884D7A3813D343CD12F9B13D935199CD744F53273DE6FCF7B0F6105BEA2176D26B9E3BE 794AB2120BF13BDA3E056EF6D06F8E219B54E3FED9A7CD767C428375E40351E73663A739B3E77D FA3F36125473E7FA6FBF4A99A69AE1DBB03CFC5C71D2D941A15C1DA9C399EC307DA5D75C8B02FB 448BA23DB70233E83964B29CDD5101B404F505D6C8462A37DC5DA7AFF8145444ACD627E8933F24 7EE0163AB6CF596E882A8B123A102953DB3D0394840A2977DE544DA405D8299B2AD3253C188EEA F07D57FCA1FB375B9BBD397E1A500DB415964E518B2E2FF27A3480B58E320EE8AD0B76BAA2635F 3632B6AFC2358A3A332B773848742A11E957ABB886B3CFFA93999A478821EDA9FDD823EC8818B7 2BC26EF0ECDD2EE498D92638D2BC8E19A283C571CA8C886A8F8E647DEC4D6424FE9CCA8308390F 78F361486C56B9C039B14F76EC5BCD8472F4E6FF566368D5FB7A55FA0E887E9CADC5044391FFA2 21C598CC9E2CED7907F736F0EB8F12348D64EBCA0672BB8F1E651BBE785A09A34223663975B48F 90481DBA40982C8857DA5EFF13E9F5BCFADE13F02C4C5D4308CB09D6588A7BA7A2E1A4774701CD 65C7274D0E2F92AA0CA4A2FFE596733E61BD589D9B5E84835254D8F22DABCCCCE8D4760E13BC4D 6E85BCE03DFE296055EAC95B3523018DF17E8166ED03A23E1A7EEA0AF8C65F219A8F5D7C6F3253 7160E12174798BFB8AF179C70A8E43C167E1DDF34E47F46543CCB7991B65A2FFC11F4917964CDD C539C2E51E503998401540F23FD6A52F81F6792F2B97EABE2A74B9F58FF2C891E320DEE3ABD153 FA43F9B456414F8207600AE3DB5283BA7A0F18FC16C58766C58EC1AD813E77BEBAF90FD8D6F55B 25615FE74761320733B58B545D584826E81F2849E1875490F15B774A3A863A20BE5A2EFEEC6F9D 337E5133329C0D4E8FB4758FF97DF0C97127FBB5F4C768439C8B9F7DF2BF3EA516C268FDA3A305 BC2485ADB785E24A4BEE9AA3E7C82D3994C19249A3AD713FDC5B5C981A18E3D35AF4CE2A349C22 E8923619B85E3D3E4B314A1BA051A506824368F4CAAE420FCF9CBAD8B9AB38463229750C31FD8E B4042D8174F9C94830855B547B95210E59A601A076BEDBF121DFCF34440F65E46365871F3BDDFF 74232CA8267CE9864E4C4CF8D3A0AE94E57FBB2335AA4EF757CE11F554D8BE69EAD58004BE02A3 B6B8CE3F5C5CD23013BD57D15D447512FF69A9CD5914A73144D71F06550E93695F0F6CDE77C1F2 59AB5BCAE03478C9B172B792B16EBAC0F44F97C39FBA333F9BAC6123506028FA93F2ED96F88F81 8A3EAD11809C5A5F4FBBB62C25C9C5B68B82C1C9734DF1989B00553BBCDED535F6224E2F74E18A 29CE4568C3A6B0CF980AA1F7CA1F396D2DF27D4A6C8B9E104B5CEE96CC4CB4399EB2D17269B64B F50A3A0576EA17F41207717A2367094EC5D35DFEBA9D1E0AEEE710FA0E2297C91AD8D002E6C0A6 FD46D5D123BA55B2595D9AE0C0C730966B1BBE3F464379167D8A7B817782DA4EAD919BE0BD1D8C 61FDA8124098009B17BD4F4A0C189ED085CED24F05A10ECB9D96F2CDED8B5D8F10A4BA62D33F94 FF1FEBC20C9E64A7DB41218FEDFBCF94DA4F16CFAAAC9ADB9D24DC1958BA67D52F9625126D3F34 4C7AE7634B21608049D7D30D302E95726FA7CC91B445FCFE464D6E1D79389404F0A28F8DF0D27B AEA1C69B435B2CBC979580A2175B43F0CB739E86D778EFFB25D9C316903B82274ED9AB9E1ECBD4 03EA7EE377A11A8EC6A8F9599879878C704B25D4A5523F759D09FE3655FEFAFD834F9AA8C75C07 4697A890A38839FFBD754AD936EF8088D20629BCC0A9DDAFD5400D0C596391640FCF4A8F5A1155 A383F32ADB70FD8E5AFA66484B1B6895B6F2A7859537C2088DEFF14169DAFFDF1E0ABDDC646682 324828259958699EB1B21B7638E3CBFECDB9544F3BE2F00636906BC83568FE854E62D5BD752A38 084421CEC5E659D7A9BDE211E643950843A0159D6834A2258933F8C001C67B073E9C9BF7D8EB68 BF061B1966866465C8F7E1D2DC98F39F3A9A0096D62314636CED9B4E2E09225760A78B1C58A1C8 2BF342F7940F6FC838F4618898C313CCE6311DAFBA75B344143736C7EAE29D4DBAA4B56BB3781D D2DCC86BE5A4C4DE100BA03E4B133A239B7F6C3ACD1C4B4FC59CACE546E74591C12BF7497F908E BBFE7160563BB47FEEB502E3B5B21EF579E375BF8B29ED72640EEBD2BB10FA2B1C30ED5EB0A089 46EDCDDD233DBB94E95FB0012CF8BF944B683DBB52C90A08E5D53B2197FD4FBE9AEEF3245D6B9A 295445C148C20C597CB2F705512F3EBE2CA9A63E1B479A49DF54AA5F052283ED369865676C7470 1D7F3D4745944506AB5B2FB450300BC1AE7B0F9B0A3F1BC5499A53962C4143455DB5B3C554FADB AA6FE569A1321DC010E5484EFEC85CD8CE23C89C87D1AA2982880C56109F596DCA8258FFE48384 1B2672711BA606DA73552081C55D0DCA31460F3C81D4A8EBC7C55A487F2C08A986403E209E52B1 A38AB94F399D667720959DC10F9675BBBCA8BE368C3DBE8A3C82224DA3B977B0ECC13EA85F775C 1BAA1EDCD9E1C52E2169A10098B56C74E2597E5BBCDC693E27BD947033700DFFBA4D2BE22C8C0A CB0D4CB909EBFBEFD2F66FD53157E4BD02E8D027A060BFB1452FCDF79ED71245F021D29A21D16A 8D8F2D0B53DE50B6E98715D2042E2C46B7C3D77640170993596EB481FE6A6DCFB6FF046147C68E 241E62DD123B598D408FDA25A5FF8553B44FF1620FABA4610F905C7EEB946CD6A09D5EA961FDB7 9AD3EBF9836DEB52B4E93C4F1A1C89140272C4955908203C803C5803161AFB2C9B3510CE607F9E 2BB8AF8BD19B38D38F7942446DA9A92770333F8FDEA61394C4C1110CD91E95D3C4FAA33841D79D F1CA42B0115ECDED6CFDD92D36A2EEC3A2904C354206B987EBA4AD69DD6B5C7A45B96106593C15 F89796CB639575DAD7D277E09D347A4159EC19A8D881E6EE3E9093B51E9D9B1CAA1F0809EDC2EE 206F733C1B11C4292F75D0F37B25706AAE5E7900726478DAE756A7F59B4D0580D2FBC839D6F31E 086CF751F1017CD84AEFDA2D318835DFB74C02B01FB151D72C4A84D0BB976A2C35ECEC00CFB83D EBD59C29F54F229E087C1C6E6D7F72F32685E2AF4D4353499C399F2438D18FF0E011A0532CE68F F5B644C3D68754CA5BA2D48E0E23C80EC34F43468281AA347664D916F56E97B9F0E17A894DE514 9800C5C7B78EDE6A882D5180EF9F51ADA5E3B511B07A89CE1680963DC3848182BDFAF361D9A893 830547B3FCD4E412838E214A872EEA88FDE6298B15BB69FF9627EB37C27F89071F9DA74F4D6C06 37669C6C09BB543518AF798DC1B1A10E2D53D24C3A5B1A485D6B8179DDDEDC7B82D610766BC80F A1B2C3D3A4FEA53933A6FF83E85DBABA6F5EB94FC23EE28BA710427842803E0F375331FA1EC106 8C396CCE31A8D68B1A7A0EC87CC082A501F711E93B9FE3DFFDD8906566B7B25A260D1C64D6746F 80A2D323058BDA6BD4122F0C04B39A4FA271E7B75A1D8FF82782540193902C88CBD99E55B33245 069BDA735E4991447209892CA9BCF5802D44A09BE99EA64ED4EA1FA39B7AE10D8B47ECEDA33D80 F8BB0684F289746D5D2DCCCE59D4E6F48D8F7EAA81129BC47BAD6E74F4ED9B3032156B302AD7E5 C2F79E5A0A9DC77FB986BB46F4039152EF22331FB70C5AC047EC864F5EA5EBFDE11B5EC4081CD5 FCDAF37B47C5CC8AEC7CBF21939F89C998AD080B530E969D39607B30B5E4474206902CDED411E1 261FA85AA8CADAAFE9C8D0CA713066ACBCF385F4CD377194D26BBD5918096A3ED2C287A058725D BCEF5D6D2A0EA6300BEEF77AE3C6CC068649D077A38CA6884BA08B9523E51DBE0DE61CF651B7F1 27C93CF9A756A521276CDF6ED0FA7F4F559BEC19DD8252CB5409CD25F20D73D53375CA25DE2CAE C1D980C6C0B99D20E3713741A86003237A291A0815FA13865649B802C08B28312C61A95910F8EE BB51351AD5D919FB238D9BCB5C0653A14258C6899E22FF0FAE8B81804F3112C598D1C2F8860063 C751F39CF1B7ACF3DE9E9B6F6FCFA55A59D5516C173C90B491ABBC65EB3D93B416597F22825D32 22D9E6F5F7B993127288D3ABB7E966C9F2FA0E0A7A5B794D72FCEB0CCBE9A201041FE2338BF9BE 6241012E1E255327CCDF5FD1B0AF10626DC35C269A6E5EBCC697761374898384AF1B00BDF33A88 E7B9628C9A44435BCA110B57227D9BC9D8BF6C2F205A62E189E683E50EFD1F09C38E62B4B12426 2982074470A4CE35EA939B558BFD24593996AB198A669393B749AED33991D833F85DA040A04379 57CE47FE19E30AD150D7EBF3D9FB521ECB0D3C1DD75D45C180619E0131BF9636AD108C6F7F0F73 0937E3C8A4F788EE09F3E4A23078A79F386A7F638286AC0045F9D52E8D5AAFB1D4EE7BAE0B27EB 6FEBE7D6336241930DC406A45F261FBACAF975B7C4EA25E3751FD1806332CEA37442F99EB2BF69 C87C649F93C5EF9DB13584690078CF7BCA17543DA5F867C550FB219C8581F3DA4DB0BE951C4932 D3B65056CFC178183EA34389B3D28661979F1328A326783AC6CD34144EBB33CDDD58EE8A9A7DAC E4AC91FE1532310F9B36B17F3CC79E6878488AB43045BC5B95397CE872D1429ACCCA5D99953C63 028959839EFEC3F0A8E3052E4EB41E673F0FA73B9F82261CB6965C621ADD6DD858D7B2A8415C11 BD9C51FF31D1F90332E076977C6461288A644D66ABD8E295AECEA2F37DAFC4F096FC0AF34938A9 2C1E5D94A438319FEC694EE5E4ED1AE5C1FA82DDDA55C394C73CE39F18137370ADE011C4FF7213 95A444A57EFCBA18 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr04 %!PS-AdobeFont-1.1: LucidaSansUnicode04 0.9 %%CreationDate: 1994 Jun 04 09:58:28 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 04) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode04 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 57 /0439 put dup 74 /044a put dup 76 /044c put dup 79 /044f put dup 81 /0451 put readonly def /FontBBox{-90 -211 1024 940}readonly def %/UniqueID 5054504 def currentdict end currentfile eexec B947A691BCC86A8714868C4E8EAA6693E50213672FA40A24C1BFEB6B454C65D97FE3C8875CB7FF DB41FCDA8653D373718784E1CA8C2E52026C505028CDB223EDE069E4FBEE2F9866016FCF3C439B BB0802FAB586D7AFD17C75C2C867DC859619612A4199CCFFD6C8BFADBAAD892A6C666D828BC33F 4F4247E844052898BE31C94D164ED8D032C6F943D6ED98C08911A23F5A44886EF9C56C418B6902 CF632ABE9998ED7354C01793652E9AFF38B16675570C3F14DD18F4E0EA8F81EBA3B5A2EA1A6A75 2852B45D9DA70764044BA4537DB8B3E88BFED459F70BDD5F881C906573D7E01AA459D103FD3D95 D2C0D6CFC9AA56C9706482A513FCF9B41E612B7F6A70EB084A6F9D7BA73BC196B39EAC357B521B E3232A0CEC9DDF61F6A57661275C3E20359577BC2124313A4BD33BB79B2760F11A0CA7BF9AA8E6 83EC1146B0B2074D70789306AFDE9BC65D8998C6C6B28D89E7CF52E057C9E40738983F55D859CD 0D719713B944F82DB6F8364CE44A194C0B4E6E987C2A392DAAC78285ED9C29C1DF8F23842C6AD7 F2C362923E2E3C896F4759020EEE519DD5BE0603F7ADE8A7908B806799345CC450EF767993D072 238A614D5DBE33015C181CD4377871A633824D0DEABDA62756476A2E12BAF3A891001FFB69FEFB D921533AE16743B926BDDFF77BEE342CD2AE8AEDCBCA8F90A10779CC9BF24974B4956DA4895299 542E68FD9F5134EB2855709D7F684998BF878869A32DB0C6BBBE28B5AF1C1007AD68807513BDC5 583819F8A5C8FA338B6CEE5D696B0BE6AD4C132E8CD0F3A0FA8DBB22BEB7F21AC6EA9D2CE4BA7E F4A1D55FA87B7A57DF56D478B444FA969F3CA003267F1B45E69BE9210906D363A62731EEF97540 E5372A27983ADC774AD984B795695D3B164AC04CDF48FDD5697A3F855E53189B795887549A79DC 69AE4EE9B7DFC5732BEE8F9FDAD6008C6EC06BA5695492152EFB8C2A2BAD3D44EEC08617AE17EC B22CEFB1122BF202A212F998882C2F653D56F2D0737FFCF84E0D52DE3CFA539954AE718331109A 30267B8CF12669EB05BA116D01F8F01472F466D26400B7CC841BBE94EFF2C95B36C695AA91FE51 E2B1DD43A459E31E01017DB6D44ABA40FDECBA6FAAFF5D2E83219DEA8777A845F6E4F586E73B42 FB7116974F95E2BC2FDF85FD5C561AC5582BE899C9E85FDA05D02898659522A38B4F497F16F534 CB8E4EED100844CF77E70A0C9C6C18C99124155AF1BC7F67952DADF6FB324B9F70859BBFA5D191 D51D024897422139DD5CB41591085BCB8A9655A43A7BDD93D78C55859F075E58B5DCAC83BB00CB 815BE032EE24398C06F8F578B49CD897740A4DA7E6DA7DD7508EDEBBE1CC0AAFBE06F570987512 0A1B016A82C5E1C27E48B4CDD5F2884A5AC18AB5536A145A7A83EB4AAA9971865EB69EFAE5EA41 5A9CEBF4DD21A7C173D5BC38DB8E5C2A6EE01B504A3FA492A889B67F9E27298149153FE446F040 B7E2C781059C65967C51E23B261136557B76D675A79A006AD83F9E0A531C6EC6BAFFF9B02788A8 35AD5EA6C7F8CC684C252AA2E7CD05C0ED81B8BCA7D4C9A0485DE412915310EF3F8303F5F4E222 769DABE6CC59CBA5036F3B6B1881971217CBDAEB1ADDA602EECECA4EEC033A1485FC32A9F34C57 994BE283205ECFE0B241FC56D225AC40984DEA53961B7D43BC47F7D4011AEDB3E3D824881173B0 6107D6C34915364BA13D09B64F088504766072E48BECB0258F002BCB476AF40B5565393CEA08D8 0B86330541D0015DCFF19A3FF11DD0DEA1E164295C22677DCCA2E69987C4DB4273ACD833F1E8A2 90C7C7E83154E97FBDB5B28103DD17BC8187A0F82B0BEE9031F45A869161510B16EC14EEE4A90E 4B0CFF0722D40B3A54EB15AA16C4A9EB4747B76F3EB24093BCD34AB43651603328086709CAB4CA DC987A0F15AEE2EB086532438092DA0DB860C994D5E3892618A1D6D536BD6E1267C1B79D2B038E C3EAC72BF37A07F8338FF4ED00A2C096F2C6DB26E71F13E023D25D3F3E547AB07E837DE246E0FA 73356D30EB9E8C83D2A08745B3A238D1FB9F18CA32E2CDC93884D4B1F87854BBE7593C45B8F7AE BC916EC39500AAC2522595A0593F2B95ACE4EFD4A016D6D6D1172AC47EA3C92AE915608F20F0BE A10E875F9DDF6E0EFA32C3EE7965F34AB6CB670453DFE936D4D1CD77E44A1E01B81749EE49A4FC 7759CB1E0D30CC814E6AB9B51FF675A22577A3DD8025E04CCEA149E717FBCC8C424196B35D1924 3C562D1FAE2E2DF182ADD0AA15FBABCAE89D91A363D3691CD9E2C6EC022C34C1D5A6F0EDD6189B 59561647A60F07E60202401959224E551F14C940667AE193924A0A83F4F85D071AF94C79056CAA B4BF0453F2EFE718C7925B7D150F810156BC31CDBD19548B4365E214CC8DE2357368A8429A9D80 6C2CF8AB10BB393455B8EC83DAD41021DD2C3C8BBD19F7F086C7D4AB0E773F9624CDFA6FE0BCA5 1A581C845241710AE04EA754034710C1ACE81F3693F17A4144C886ACAA69D797DC781402C297AB 5D83D4CF37794E7186404A8597FA96FF43DDA263AE1E5BB13132DBC7A899B7E29136D8ADA59BE2 F9FF6DB733B428A2D4BC94024D03210C67A9DD92FFFCF7DD20DE16564FFD28F5BBAD8FC6FFB08B 8EA5C8183331931769777C502E4DD4348DBF937560C37168C6FB31D04483E204D23C51F74BA204 8409709D3B387CF7ADC611C68BB8DCC51ABAF46F4557D9A7D39472775F17F7D57FE5BE656B7178 54306B9D35A6ADBEA90A4CB0B4196045B01BCC454395C6DCCD91DF342E853E390D0A060A587673 6A7713D1BBB7EBF6BD15680DBD6996E69BE0A25DE4358BAA6FFFF20AB9FAAD1F62A773A51FBB25 9DCD63271013026CC59090452EFD867D24C4B87B30C8B338408836B68D9F5BA5444C5AB5075D38 1A8FE2FC68F3E307710A68163554EBE7002D15D5E5A8DD662195CFF998B7826FB58345A0C932B5 E3505C5A7174A649668910C3493DC2BDD0635275431DDD1304699B371FE983FAB90976279ACA40 6777877762511873E042A65E5F0D3CD63B692D22364A208B555EA28963348D2C2DE3BD025E54DF 656FC7749C9406325C809B36EF3CF9BFE641783D6B82DCFCF63482D2E82BB4DB6599D1771B6DF4 FCFB7803B5853A371CAFF56A1A6F7060AAED31347807AC7D0114BD90CFBDF64C0A0BE6D2A18883 CB9577A8480062E6849942CFAF4290F2BEFCD4B7A212F88B6ED02A82F4134C66609096E11258E4 6E9EC209B58597889F3B86F66D5678CD1F0A0260BA8305EE6B038842FC4244767E615E15626773 1006379D908D8048E94ADB70CEB5E6762763E8744D8CBE771B01BF51EAEEF378EFC38233FCE953 1ACC4F8FEB18E3164C7C834F7A253C0EA5CDD0A541A0E8A263EC6CE7810D311D45C018CF88579A 60864FAB0D4D6E8DE5D2D77639AA944DF27C99067D4FBAA626BD61B36F4DC0CFEFC52DD1EE665E FD87E73F791D95BF9368072D720A8E7069C9C9FA65D22B0C401115D19458883F4B37E631D6B532 8C7E5A10B6E3F9407FB6AB8DB7D25BD0D682B197EE8C55663AA50B6B20DA99B489F8BF5F091949 16DDF7781E5E437C208BD4C68F2DA4B4913C69DE358E9E8750F8AE45D8F0958F30FB7AC997B253 C255CDB46054EE7CE90EE8C3B0379EDE79009F6952DD0C29A682813B283A18E11ABA75DDB8985F F81377EF1420C3F93832DA217576D9871815CF0FAAD815FAA4B8D93862E0F7FE9424A40186E933 81DE8FAC067BFED22ED9A8D6794FD76B97270E30ECECB34C4CCEC5C8681BDD66DE14679A85468D 2C7952A33C265FB2650B1D8DC32E867A98354E21F5E644688285315034BEA5C8981C9B36502C87 4A3F87B5BF5BD1E3241B4056D848F46BE457752DAB938CBA20A7A8643C99E8A0719D9FF7422FC9 1F25BDC284D1F0664C6EA1900938848BCCFEBF2BC4A0E37DE2DB48C5311F7BB5FCE22C3948F8C1 AB83B98945A1FD7F8812CBCF8852F20D26B70D94D04E4C3B3593BE0716B016630E43C349B56F9F C17A9D19172C4E1220F97A7B350DD592CE9E8DD5481A3A0733B95C58241B333586198F375F1F7A FCB84E33878056472D0153459A5AAEB4F264AE38CEF24CEBA2A32970E642820E9708B137180739 0755DB1F6E830A73DF803365B93F815A330E307828F3FFE89B1051EF80466E3F2BC7C5D703D5AB 10F0411C20E72745A13167759657C8F68457BE6C9EAEFAF4C689839179432E36200EC7C492EF2F 76AF90BBF8333DE26D91EC67F32425B3655D2AB080D6F62AE8CF99002BDA6D369529CA0110265A E93FAA293D3E5CE6121C899FA575DAFAA8293DD6BEB7F8F5356B7076B38EF4E4DB70F004EB1FCF F2501A24FC75A3BAACA7E6D0706FDEB788C4FDFCA642536036F90E65F6BD876DB2519DF5085C17 E5474B454FECA74BF0F3684698585397E3E04847A1700307B25D00A2543C5F5AC662798C2BCEA5 1A56A0D92E1D376E01898FAF604AE6C3861592CE3CCAD063C628E15C2F459A6399556F582DB160 0C8C1C55FA94E64AE5754715B007AFE6E024AD0E96218E777E90794820DCE4FF8C0F936EDF0C55 2808CB0DFDA4EAD0F1FB144651891982DF671D9EDF47798A24AA5F0B33E9CF63AD8AD4F3440CE3 76B4C47499FC93F8277F3D22457B98F956C39C53D177F0CCBBB529A36055AA4EEC626A7EEED64D 646ED1FD0C3685CF4E2DE42693E7E212343B83FD75AC33DEFB9D16A1771D6D3622998E556C0AB7 F2D811339E89330348FBA8AE94EAD8B18BAE18CA3683225EBED1A4DF9EDD2FCCC34E74822966D1 D5F71D2346AB76CC3D0AAFFA3E3D57CEC007C9D892C5A82809976719F964186D3279D79B4B5AC1 F0333EBB8742D25644A962D02EC011FDFD7455120BF41418D4FD6313066DBFE5A0BEEDC59ECA8F 8D1FEE9199848433A584EB5347173D726A521859A91EDA4E2D73EE7E8C51339B86305C63E35E86 B4FF303B8B1075999B68513497249C62ECA2736FF6958EC66FB78AFA10532913ED98C1E13420FE 18C9884E3DA3ADAEBEB2AFFC5800668A2AE2752BD30945BD58C75EB522F869CD640B1BBD982833 F92EE830EBB96507F4762E3138243417FD2C4738FFB542D1B2A29CDBCCF9F3CEDF879CEA7CAAC2 570C352F4E4CF19D069FBE80F9AB796AF8F419EFAB203B930625C4FA2435D0760067D328A5641D 834A56E35ACDB03751B97727E4553057FBD08C1236E45C424368A7B1550A4ED7A5E6270190C60D F2E025A2E24392AC419DD2FCC5D85696A0B2468E1995C3AFDAE38058FA85E54DCFFCF687707847 39FC137FDF9D6BDB97E38642A6E6DBAE8B2E599069634AFA5FCB9DFD01A00F7174EBEACA58E0A3 29B88239CD746022D2B10A8BC3CC15CE973353C01D98D8B2D5AC9253CA5ACA59AF6324B5C69A7D A13E28170A4077709CE7B4B77B407898085D371E0F9207BB42ED043D8579D57F81156EE847D962 FBD8412ABEEA9B941AFC7B39A51391D02695C8FA95C775F8CA84DD46B2A28D1735C2C5228FF7B9 29AE385AA61818C2E9568A4F23F8E890583E7DDAAC4F48875429CAC2D54714D179355590FA42D8 160CEBDCF44BC348271FBDD219EB95D1153075C82383339334D05F741D7CF5F12F85DCE3A25BAD 6D518F3B13A0DEE4DB2CDEE3D284A8DF2F7B1C9D07E8D7F9D47D6BD6088591A9E089EA2BEF5B83 CAAB3EC766B469DF9640DFBB4C32E505EE2A01EBF2E7155729D1B9E205711A74010C6BAC48F73A 4CCDB21FD55BBA48ACF5E5126CE38ADAAD6DBF3EA6297C56EC9CCB98766DA4C76DD8542BDD1596 BBD288C262E48A15C27690644918944E039E9012C08E62A63495BC5C6E82285885A2E830DE725F A7C746BCD0F333AA0DACB4D044CF8DA68EB5A1DD7B657715562D0D3F3F94F0B642C06BAF360191 193F6ED4ED5F781AA5AE2DC7E9A6B73B182092BD5ABA6AF79E638152F7747E5938ED28D9C7D894 A5762C519DD6620CECC58B2D583D38B63584172CCE9E4D5B3737422ABB778B2B85E9F6C80D3CF5 FCBEE03C2C66613A8C5FFD6E5C2A4377472AAB0F1B93E7564657CEF1BA61C10849686BA4176116 FEA3C5F3F89C492C1CEAA310E9A8578B7C5439355A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr20 %!PS-AdobeFont-1.1: LucidaSansUnicode20 0.9 %%CreationDate: 1994 Jun 04 10:00:12 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 20) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode20 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 19 /2013 put dup 20 /2014 put dup 24 /2018 put dup 25 /2019 put dup 32 /2020 put dup 33 /2021 put dup 34 /2022 put readonly def /FontBBox{-615 -440 726 1024}readonly def %/UniqueID 5054520 def currentdict end currentfile eexec B43A59C23D31312E42BFF7A8FFD888C8118609E66724952B45D5A38971EEAF7AEAD27731404947 E5D485EF2185B7B28FEE76585E49D85250EB800DB5DBEF09999B470F9167BB8A81B88DCF399612 0C5E5C13C786349E7F44E018DDA185A7327A13F55575F00A7B68BA5390314FFC1BE676564A478B 1A253C30B407F07FEC8E3E3C46BC787775A409E084B26786F0856006E38AEB9E71FD27672DD999 15E5FF51153CD2575D5A841791BBB0DAC82FC347B4323CDA6FA02627CF6F313D71FC7B56A6F4AB 9D45D4EBBA4FF9F13323865378F1240393DF17083189EA6A560B78F670F31187E21DD2282A40C4 EC215B6E053C952A419363825F8074AA1F2791D599B236931ECA38548DF42AF21A0B93299C7A6B CD562A5D47894A3F2BB10DE3513E0101686157DCCFE12025B2F62AB48BC56966D41430446797CB 34EAD92D70125D12FD83DD10713076729FC32F58FCE51BAAA5865AD74B16825913B821284679E5 9C71C2DAF711C0E0D4E82BD5FCAD13D14E69C0C9E8DCE7F05D2A5B1F4B724498D405664EDC7CCB CCDA84490522BB752CB6BB095A3AFA53A75A04E8B6446C38CE1F543231B8E7A462CC128403A30A 1553F8AD4952935A99E6781121623F4DCA70C680758A89F19FA860DDB7A02B71B4265E4EFE5CFF F0871888F3C17034282B2250FA41A8529AD3CB49FC2F94FEDDFBED06ADB863F82168180A185578 755D4D43CBDF4D1FA47B05871CDF84694574CB0634E35C47C9B4BF695B573F8DE08A555F0A2DF2 2774590AA572463F9E2FB1510BBCA5E8F6ADC8217855D4F1D5C837C3CDBC31E1CB6F52CC6D0D65 05E59AD73924E4EB1B37E9C433BF0ADAC35CE1832DACF7FE538E921DA937CE895F565305535EB8 17575E443932C9896F7D11431F8ED21EEED56E490E157FF33BAD34EEBF76042168A86077AAF03B A2173A795A37E0BCE53179C645E8C12C0FCBE7C33CC1AF08C58567B83B602E468A8E635F0811B7 6F8E4318EAF2CC3C5DF01FD2A95662F00029F54AC7C8FC2B999CB46D6AE8D3FB1DC657C6E961C9 F870BC5692211F2C244EF9CCF84C65D013425D119F60FD2131271C5FC6CBFFCAE54064DE267BBF 3E03F44C47BD24364273AE3D94C9C818825440FEA0E06CCCAB1CE6C411628FD565E8C78B039371 F4F6618EDF8BBB15197285A8379DD1DE9B0AE8C580C44EC9A7A74DC4A4496A4868355BD28FD537 38C81C8060FC059EBABC9B8F14F65C347E47EBB861DFED01318BF955010A0ED66DAC569E6794F4 3425476951FA9D84A48D7F9075B0A197936EBABE6B9D3513B542E1646A0D32995AAE08FD77921C 79F575F40B8E813B330F1AA029FE6439D7505B9DC9210D43BA9CE32E3A14EF467C870B182ED37C 654DAEF47A595E363AD0BB939085DCEC7155829BBE1E1A47F1F2A4F3432E34EC91C1C85514D35E ACE265943CD46A79D4226BAB3BF354A04F0E182B759835B9FE8F76F505057869CAE56BA3350712 EB5103078544D804DFEA9DDAB528DD4939273645933425C0F64F7AC4E5D3B01D5D76CD95C65756 B48FF39634475BA737AFADF17FBF3CD5AD0E88F6356CF06EED43EFEF9B5433EB1600D38D203D51 A1099E2E20641DBAEC087D771323611E50B960C1B20EC7B1BC71697768A088D806400AB4CECC04 67AEE799328421391BA370FF34C617F15105260632A8C0F4B22E792247E390B1F564C6FE227B85 5A962A6E06E6F565D8D54F9887042237617FB78CCE75B0AEE938B1FF3F0362D6BC139C871D1BFF B8AA0877F9D3F0DB55ECEE0AFE6871E01F204332718A0EFC66EF197523FCAF46898F32C1B324C6 DFF22FD9BDB4DA9D95D5D2208CA9D67C6C13B3A3BCAE8AABF40EB224AB9CBA55204458FC526DD3 8380F3F432EE69266C02ED0086DC8D6053AB3D3330D436B04DBAD95818B0A5025CEF13C378A9D7 2B6C775ACB4833AD3570D1E76BD359A5A8EC9C4F0938F7240A1B663AA366A4FCF3C102DFB0FC07 994E668F503A0E28CBD1CFC49041562DA2249B608712EFC10C9A35E0FD9B346864E6AF644F07BE 325FC4E08F81E9E8A6DE438D3ED64F05A57D3693F770C2E139ACEAB73366F56A94422EB50F6670 9032FAB1F7ED83D150A8D26B45D8B59BF720D04C4E283A647065EC0CC0D55D9FD7C6502EE3DBE3 E785F49966E1099CE4596EA2F1CAFD038E882F05CD9628F74A9A09A5DE677704A12CD82A95BF7F 01A5147536FFC7EEABA0D288DF1A9C9B639350A266C42500696B7E925174AE15CDD011119E8288 7EDF23F0AC7EEA78E38104C00BACCED03A7785D88FEA2B4A3EC5DA4ED2D0357EEB43C4278CAEAB 5BE44EC6C777B67FF30140A391A66CF1B47778BC0D9BF6804E78DAEAFCF1C3F67760C94ACDC930 94E68CC33121CAB7A1FA79E8E14276CC001A8D31333FC78721C8368034B418756A9EB23D1F7104 43326DF928CFB2E1F9246CCF09F5D21537213B798D2B72893A8285EDCD48509C022EDB3E0943A8 AAE2FF11AD8B6EC442F30DE19215EC6BCED82C345467DF50276F8123BC061EB2ADAFA6CDECD1C5 5C529BD9B1ECE353EE7A58BDFFEA47EC30FF94FDEB0E465B7A45EC795797DE00F78E180B73B3A6 F5B3F35BD80882003053F618940DB675D846095F63E90CC77B5022E963CC39915CF3B95F8F5A45 4419ABFDAE6087C4EAB799A8A5F1CD7A234A2407A2C08DF813227CCE6DA56F6D1B081278C6E046 96CD90F917C7AEEEA3032A1A13993079F3C41DCA1FF2B300BEE78A8D9512736DE4DF75CEBDDC58 33F8D1555590AC92FBA63E2D59B80EE8DEC88CF78435CB4CA57D702DD144893C3279DADF5C6164 70EA7FFF87FE66F510ADE5B32019709CE6D9BBEA02F2BA243975E7800839D904DC09C2306A292B B812F8CC973D40810ECA109BDE38961FC2678BC1CD377E2FEEB43E2072B38621801D5ADA0A92A6 5F37C7FA277ABBBF372D08B834C737DDFD16B51190DD3043040B9C060A1828742BCF814CA98EA3 77DB2DAA1B027BDE291293D8CFC3DC73A75BBB4BDE3CD80FDA05E46A2CE0B003663A2003FAE55B 0535A681672F7D8FC966834DEC4DFE56D3286FF86C10630F9EB91BB731A9C2AFDDD4F1554C4728 4D68FE4A486EEDE086A565929B97FF763B31B5CE48678860215F768CEE265E157F1A44C3092FD0 48239B140F2F8801D05B76FC9EB969BB6EBA6D472F1C016B94012127975E20FE911529090CCCEF 4C980611502E8641568824AA0F18FC3CBC5C2C46DF4A310A1961427A7785EDC75D0DC93FD03C26 43FFE864A91F4F285FFFB5C74803081A71AD441522F4C5DDDEB96BF5A7080BDB57A22AE8DD9310 02D940551006B0863C4274D0090A9C2EA9516F291F4A833772CE2F0CCF7A92AE08BC02CDA5B434 3D8E61C1F1ED39A3614BFE3BBD2BE7C9C3A64F1F7FFDAFF51D3FA0357F672316BA9810A620911C 06393D472F8BFAEF9AC09A031C3A1A33816A77A6C5EA88AF4D4303EC449982D05ACA3481807F2F 0775C87DA047792078D7FD735623D86C37274CB49235A22D01AF43791078E4AE92AADB3EF71EBB 7C96F303E70F1E3F7569471C6A0FC9B9C59E4DC141FBE2752F6717F4A7C8CB5D47EDE806D835D2 8F48927CA3A3C38B1E5310A47943668646946991FD87BDF723BA535A587EC98F9CC86A15F3AF79 625C5E9A1570412BD515DBC288A9DC3E4194A2031707D47E54A1FFB73099356BBF4C67A22A71BE AB39619759800E4F9F4B558457CFD32E456D546BD2542B3F493A2FEB432FC1511587E4F5C0BCE6 3BD4CA268846F13233A6D3E22CD92BD8E19627B71EAC34CB56125C86CB4168194ED4E45FC6B759 5887FCEA79676EADACAC6F0A35B30B63E61C51DC92E4FD960EAA2105ADE6C4E551FB59E0381ED8 90AD55857073689ADAAFFD1D27AF7E9BCCD8078D62E2299E35EE4255817A3E7CBF4C142AC2F10F A5486FCB20EA7E6281F6FB7F91DF0A48B0547EE2133AC09C1E0700039CDA77281121975D84864B FB24A6F6E05F5E801FF02B04A8FAE6F682E7C9A705B0A6CAFD3A84698528921856038137A3D111 30602F28D61D26533FAC142D5A6F0D7C918D16BF3C1CA65109ABBED3BD897C8BFA4490545552D4 B15F6264FFF4B02CD60970D6D8F35A18295A2AEBAC056F768F29526958DC1E717FD5D6504E303D 1C36802BFAEC578F5E3F0D1BE9FF5B65B3AF6DD63FBE07432BD1EE72BD24C27C5CCAC3B95FECA0 AEDCB55933140D1041DE9F2AFA2ED9F3D4BE5D7D0C7F325AE26CB1FECC40CCD6A4085515A11F62 26 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr21 %!PS-AdobeFont-1.1: LucidaSansUnicode21 0.9 %%CreationDate: 1994 Jun 04 10:04:24 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 21) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode21 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 144 /2190 put dup 145 /2191 put dup 146 /2192 put dup 147 /2193 put dup 34 /2122 put dup 49 /2131 put readonly def /FontBBox{-30 -325 1384 883}readonly def %/UniqueID 5054521 def currentdict end currentfile eexec 8CECFA711B4939E41CA045BB7E8765272CCE317ABEAF2B07E70D992D651C41DC23B029563922C0 95FE85170451329EEA8C7BF7A2726EDA9D9C6D097F0F7FB11AE93E80BF8DFEB2012E3B9F49A227 13E573A8BAB0BD7AA774AFAA41B97C6C70A3BF84A0B468C41B70D35F1310A4BCF2B97287E2FBF9 4A30663A4DBB485672BB54D8FEAEFDE594B3B73220D0C873C546C40B5138841E9803A47402513E 8FF4F9343A0E92A13A04C27921E3EAAB23C355AB06A42C0BC5CEF70BAF6D687B5C79B5360DD42D B2C878AC8DF4228BB74DD81C6FEFF53A36279510E983BDCD1A8145830308160030F770C3DE994A 4DE01ACD31F1D76E3094B43F3316267B62B6D653546469CBD35DC8B1541372AACED3750E498938 970666D8B36D41627069EF1511128034B8A364FACEF8068FB8A2F7F3209E5A769AF14C3E7F044F 6892F9009EEACF40CA1AEC6F322861CD38A8CE6A110A5C348EC2CB376E5110065918A03C02835B E3E89B986010D70284A334D6725965CD86C1F4937315B5BFA1D7E584988077138480F1B72F2870 2477850CB729C71006FBA750B4989EC757A808D51431556B673A084E350A74279AB2E9C638F7D5 B6BE1D50118747D01A6F3250CB9F204E3B03CC46DEC9821867B2334D2593522BE05CD30CA6B75D DE85222B64269B1DA310838E5962A391BC8197808B9D11B877A50D431C25870F7043983E965CF5 0F5BA07DA4DD39F97069868D506F035C0DE343F7F5C12587B2B05CE2ADE6822C6C0739A54D5DAC 415135137E8341C4D37F7D4534BD8FCE1DEBBAA3C378C9C9CC083F3A892EB7E44144F118680E0B 2A94BE914FAED74B80747D013961C682A0C3A3F55AE7496F7A15786BB0AEA5B1079668EAED2527 9F744F8FD112A6C33DF4E1500520910769D69C8F4D659322035993A3CD70CAA65F9DAF1485DA40 CBD374802317B409FB464C03C8A46831DE7B04E924B9D8F5C5239CF99DFB7176B2A01C1A31AF6A D7EE0115C6CF9EB2AEC83901795A91D4563F32399E1AEB65ADE7B8248571668410AC1D86F71918 70B0FF9C844CB7E6352B01A2C169E37513CF7C37D131B042AE6584F1ECC680AF5AEFC74D2C3309 12C36CBA7D88E4D44C77EBD7377674DBCD9FADA92577843CB5B1C0CCCA0A9CC3BE2A8F4CFEE1DD ECA543A7967806B9F65C5337403864168AD5EED97FF91EA2A00BC4480D96D09080029CF4BE6975 B34B40182DA9DE77D82BBAE0007448F08DD19A443C3EDB130AA1E36D2DE61D809BB3508EB12237 E460F68508290E1DF4E45B652B0A2EA82DED7F3A5A05E9F6FE3CD1E8FE988B7258E81A243DA0A9 B677C368D33AA67DCD8BED50A86331179CD2A6AF65E164A925258D5DD67704B2F3D7B3A9797DB4 E5092122646EF94DE3FDB3548D60702ECE17FCEFAA298D9825EFB4CB96C20E5AE933A4F9E7FD4A D8BB4FFA426366AA9EC6DD84689F24BD858212C0D745D674D513DC4C07C37D9733ECE1D7F7059B EEEFBEA12DB1F8F21F6DB88EA763511B1CB80089383350F0EEF474F70276C7B44D075B21862115 1C4C8CE0303FDC81D848F74CFA94CB2D2F61FB99B92DFBC6CECC15955A790C62B3DA7654CB95FC 9EB2544F05AB69475FC405C3F0F1E80EEA5F82EE0B3E47937556C7E14CFEF5A58ECD7B975E519F CA80763297F483FE24B96F09BB0C6ACE0753EF674B62B6F7C2A301BC1F8C7D2A84CB9DBC68AFF0 7ED80EDB570861D23430D1A30653E5580B9B9902AAD063F04A700E801964927CF9943A074D8FAE A48CB417EF69C589EF625E46A55472A0A2B3CF9C7CAC86764E06ADFDBA7AC08812B171C4ED089F 3FD3086F97D6B96299E47EC1BC98C8320ADF7DAA7D384A128693DEC73675CD0C185BB260668E38 9A35204FA0838F70D1AE5DC74957D9EA2E2C3088D660580C20D51B212B6CC83D9003260FA4873E 0B88A4DA8EEC5AF1DBAE1C0D1454746F9014753E3CAA9C8AF20D97E949D8685D5D9130BF1A9F79 57569B17DBAB5AF2F08737E9A046C0BBAA1238D2A72504B9131401B96606AC9230CACF736151D7 E1F79E7E4F42F625AB66F02FDA6C31C497B1C2A2A0C4DAA420B59D647495B306723195DBF74F72 FEA3B0BD8C2A16E95B442FDF0B39CF601FAE4BB5AC9C85C1042A6C54C44B60B3A44D741E788165 2126A8235FB58650ADCBB265C349F5A93543A4F765C97225C9566D7C4DCCC6779E05D9827F8C00 D78D582BBC77E25C3A170C469A268B483BC3153D851FFED8A1911B6864655255515363D8DBFFB8 0C02180CB399D92C242F0F450766B5D7D29F59B5D7B47633C87A1B46EB3322715BE04BDB99E126 650DF431A9E8DF486C8C63F5F0D26DC24B9DED300D3107A814E4A01BE93CCB3694A99887C4F1A3 46DFEE064D27CA5D5899AD2F8B3915E304C8A4121A26C1B7B8B81B9841982F6ACCD03F249A138E 0F836D0F533153FCC8B3B4CEF39802D66A0EF0CE76F8E2C03D880FC4F44C1FDEDF0C50971507C0 7202C26CB4C0C1EBAE4AF043F2893D4B15B183B5B60DA901252BC6DE8D8DBCD54B418C088D7D07 3084C0809EA621F31EC5DE23374C5A4AFC2AAABE30A0CD14CF07914839804BC88A7340BED9C24E 48B93770745A08B2FD64AF52D5194D57FDCFF6ADCCB3A553343FFB2F82212E5152EC91D9F19F93 7839782E3A8FEED1128568C5D39AEF3638592F8321A7513B6C361D56EAD81E2ADC3DACE11B7B50 73EA40B36A9E042BDFE78E30EC5059549BF9D1BD29722E6FE3E3CDF81029F81E66C887B55A6E3A 96826166A1FD6D27B7B3B5D72046373492434088F7634CB45301F885909D249C2680E5B1AF7F1A 5C1A7997730E94D8A0C643937B284C0FE0EA447965A8942E882C20833C9EEA28D063C6B5C52F06 D9580E5387B9C87945B1990EF0537A00BDE28C42C08321C0730A04AB9A0DB8435F250E10FBD8F1 B70FF91E4B795BB353AB3DA14F7FD8B61AD2AF4CEF5775B16BEFF8E3198558F77036CEE8F21556 BB24BB44437966855114167168A2F45CB4CE1CC31FA04E39FE5F4F07A21D878DD4D833F2905E4A 541F26B1599463BAE2BACEDDA6A25569E27003BD478232E627892502ACAAEF3E61B56139542D1C 6D6A6B3873EEC2EF0BA2CB21AA0148F449697C43D3CE159B01827618C1E9A835186C2EEEFF0EBD C22D9250307D280706754476A9B24E141B88294CC88634E1690C5482E5232EC7F174256999DF02 FE1FAFA59C4369C41B8E9BA66699575035718309DC3409EF68CF0768E8A2AE0E5BBA760F3EB926 DD09D37641808114AA91761DBDF3D2BC64A42DABD5010465BD47597A69B1F88DB579B7A47563B4 9BA22E69D7294A81042FC2A57781D8FBB5E87E77539498BEFAFD98E3C1C761EE5E7B635AE93BCD E9479904AB3B3BB64EDB0C80CC2B04BD9295E208340BF65D55353BF8472EBC77 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr22 %!PS-AdobeFont-1.1: LucidaSansUnicode22 0.9 %%CreationDate: 1994 Jun 04 10:23:13 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 22) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode22 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 100 /2264 put dup 102 /2266 put dup 103 /2267 put dup 130 /2282 put dup 131 /2283 put dup 134 /2286 put dup 135 /2287 put dup 41 /2229 put dup 42 /222a put dup 43 /222b put dup 67 /2243 put dup 96 /2260 put dup 97 /2261 put dup 23 /2217 put dup 25 /2219 put dup 26 /221a put dup 29 /221d put dup 30 /221e put dup 2 /2202 put dup 5 /2205 put dup 7 /2207 put readonly def /FontBBox{84 -166 1060 898}readonly def %/UniqueID 5054522 def currentdict end currentfile eexec EC18885AF58F29AEFACAEEA59037C942D5A3FAB833BA43EA181148D28AB4B88B44CA4ACA1F92DC 003EAE53A624731252861B743FB223E6A26B5EA4CA4237504F6A6CCA326B9405AB85D95ADAAE82 22B5F340DF4D35E0A2CB80190E539D9C09EC6DE84EDF6E6DC6E40089958D58B17EC7357C0EB84A 61C5A04AB034973BD320598296F9A79CA937F8946E59DDE543CC946C528E3106DEBF61B81D7A8A 69AC62FC23908A8A656B8518CB8FDAF8A2B57C3C7D4B644754586A739AFE94AAA7B685E0B09EF2 C30BFEE0F183A420766F0BE21197DEF2C56A4BA47A2AC88C0687DCBA5494D19D543C8D7F43E8F8 67EF76E2E818ED425C61EB7D3EB50B1174995ACA71352D8218D3734BDE02F4A95E232BD4AD9845 09AAC48D0F388BD9ED89E3DB5276D12DB11621AD67DEB0F7CF2046A95D6147BD77893BD999663C 6BB6206F86C9E5BF1B7296EA35C677788DD9627D6385B6903C83B27CB461AB230B86435838C33F A32A0B5DF678E7A5414A11E4BCFF1098BA6A3A6C70AEC03193BF8E08C1F703E2B0470B171CC9C9 CFBBC16B532F551E32A6EBB545F8F16B4DFD5945ABF67BAD9AED02092F99DABD828C674A246A3B 50B6CFEC2542399D397121C09D60CD1F679CB805E385F3D63FCEC624B93BDA066709C669C50BD3 261D4A143B81F83AC3AD4052FA424782F1C8985A783C1BDAB4303948E6BA2C6F1645D1AAEF161F AA605149EBCE77F37B904041DCA83C92CC102FEA932313FCF28C23DA1D3F876F612EA30006CC36 B9376696E6D3C74AC6D5E39653C03434CEB58C958FFE72BE74DCFD7921BD8D29CB9B5D9462CB1E 6CA793A7E2A7F1ABA296877AD19BAB0AA44F0916866DAAEEB3DD86474882FD901F4FE785121720 80BB24A21D83C909FFD3ACBED7C3F97E8D434B4B3DBCC83A954037319D24198CC1B14695178CFB 18CC1F530CAEF7C5C845403B52E2A5CE0B7F158B8C4904B2EAEC08C9BA7AD693405E918356E7D5 1E87E2857B18EABB71256596245BFB5D3F3E547AB1355106CD33AEADDCC870BEEC170FAED7884C 82DB23EB4B99C4E856B81773093BF2B625D38475AFDCFCD02468EB11B035E4950C2E909EF0AC96 2C6C41D25D43C5653AE66D718013E922561CB88101CCA5E70905BC6D48B80C177F552BDC9BB31E D51DED3C0D40BC161A86C06F8FADC8449AA647EA6A83D9A5AB66E8CC4B5C705375CFE9AA94C1C5 6AC04BE22C68860DC51566D69AA649F97B43E557EE45E73B23EE06F851860CE6C29CFFFC95F561 165AFF73E18A9DE0A1660754A311DAF53146BBB751053D424E32E8600B50303AD1A7D9E663580A BB54114C9BF9E2850BCF12B5428A4CB8E458B16BEB43751E68BE952B34A8064CEF61452FF56537 EF56D18A3A3A3081029B7027600A1DC1199772F97102E7FB28DBF3A941729599B0F24A565C1BCB 62FEC5ED752428920BC1C60C08ECD8EB86AEF841364B00168456006B406FE14F1D4F338B142CFC 42BA7DDCCC92233212EC5B35E205372291B4FCA126E5FE8F6D4C8A37017DE0463D7261E98813E5 8B1FBF38993879ED183A30C569DB75D9644B0C6D237F76D760C3D77C7569FF8A1CCD752AD9FC87 3078022F6A3B1D749DB363097597C2CEF08CF19BBBBA4DC2AEEAC4312E9851639DF6FA9E2893B4 3366E631AC15951644702A58B7FF164C8D4137052A3CE699438B9B5FE2228DFD6B0931C6149B18 6B9F57F9D780BAA7835331B10EC5D837B9257044B3CCF8AE4590B23796C7A712C6F188E20DFA22 1ADDDC895EBEF28DDC6FE7C1086AB26B878DA3A1ABEF1E7EAD344CD7CBFA752F7C274E8E9C970D 744186961EE5717BD0F50B67144FD576F6B668CA608436053ECBE116CDE462509A48DA90D66105 ADE07641CCE083FDD6F161CDD59145E8514CC0BF34FB77B657A287EFF963E63DE600FB15BA6A17 87E63D3208F5BB859E650092902715185D69A11C6F73DE088D60DBBB98E70ED4B7C5D4CA9B2AAB BA91E81E20CBF4716D603416B399B856C46729D4AA83330CB528859DC68CD028CAEBF9FBBCCB5D 50CCF2D3323000855669842544A61CA55FC4209AF3D6187100C47F2681D3BB823F09D3DEDDFD89 C87B17BE0B0A0D14E75370C6D2CAB809BBE932E6718945D6933EBB8A24FD507906BC651216119E CEC5B916BCA6459AED96417AEEEFEBC4E71D76DC5B17A37B8945A83946E64B21AF0D42282B0E25 A3DDC555E709C80C5C8CDC5E1AD62B89A7CC1E1AEC962FEED653010E2FEF56EB5A14F810AEFE27 16F0A27E7EDC63A7D2E1C6AD410E22E35C8C923EFC2554355092DDA8113F6D9D5B5BEF54C824A5 1D7F5CA2CCD4321F9C3A6EC8320F9A577610C902B70B6B0EE5BD381D9A7C6B722BB55EA06DFB77 DCFE84A0397C8FB3BA4917521A88B43F9F12F81571C39ABE049D54405B96D0BBFFFDEDD0E90C3D D6B26D82D797C6B31B7FEC4BB0B51B2E8357C5CA8A6181536CC13498F7EF383B98281756F3D25D 6961D477191F00452FE9EBAB94EFCE0C958A415B7A8B0AEF3F072A3DAC3B6F1BC974CE0DC92A08 00EF65EDABF91DDCE2931A6B6CDB9B46E106EEBB1017E487E4AC078243A8441422FD61BE99A8F1 022CA7C9B86AC24E4101F46614E20749FA065C9F9EF8AB8D45DCB5632F7E5579A4EB5C44588E0E AB91E0FA25868A585ED5364804118B2EEADD52301644AB6AF821BD6E5A78E3BD4701D7211B4929 1EB22DA0301F61F69379F1319ECF14C6ADCF574657B6BA459E6FE012A1C6CF198250A7A9BBA055 06215E6558DEC8CFAF5F342975B444F98782CC674EF5E03DFDF803C5645F303E229448E57E3891 37A4703A784AE802B6D730C82E7A5981DC29B586174FB22E854CBBE4C359D27BEAAA684866AECC 6F33F9C1E0CDB2F97E32F7DE1C74CBE941D21EBB079CCAD9F45BB6C976331CCB1AE84BD12DDD0C 0245E24C556BD9DF805DDEAB76BB5B82A148CDFB8C17F97B70114107A41812EE10D16366444BFF E6EC7BB9FE286ACF78FC1C50369FA2E0E9BB26BEBD3112F8715651DDC05482809C0348B8834AD5 F8594197582B9FA1318E4908A108A08BF0163B419D0B20BEC4402E2B1E96F18552DD6FE45B9759 FCB8EE6A64B9D901173B3BB5D36EA3074C8065D37A7B0E01884A59841C5C208D924D8436AE36B5 F7EE7EBBD690EAB5AE9897B43B6F46549B6B41CFC6A5EFEB53A6E1EF8D9DF28E78D3186158D4D6 1C10AAB0C85FB5A9CC43535D2E458090AA80AA75F39B0AD1C02E3C103269E8A40E60832AA2B160 B78BF08BF2DB06C8D55C768055DB5F52D1F24A2599EF1F412DB23121BC8BABC1933CD43B0A5908 77246FD36AB18D0F0452325E5F1FD495499C754D3EFD68D948DE856774E476660F91577FA68756 CF17936C23246504495C072341C8AF8E7E4BAA8A5D7CAD373D9599F52A4D88C2F5DEB65A2B9C5B 6914C569F8CFF9164725C261EEC2AAE3C88A26BFE1B6327DF1EEF827562BBF37E8106729B5CCCF C0F1011864574E4D0E5B3CEA70B562F03BDDA49B107521F192D36ABC6ADA755456175EC9ABBBE1 E550C412239EC97662338E92253BBFC7D142570A6F22E212C8DECAC66B4AAAD9DF4BB681BCA16B 29B7FA623C47FF37905F923C0143AE479FADC0E27E8FA15B461509D847F02876975C6B3B33F490 A4820F9C43D3F0115C6157211CFF4B13696BE005FD45481C9E496B078389E01815B78C9402841C 45B721355653E4B64C5F226D114DC02ACCDE11E588DF5A7889B8670F1C9F40A5DB89A7C8E901A2 8EBFD43B24A5DB9B2F864C6A45F9DD7DA926DA86DBE5E2EC9FA04004862A5903F6A5F372303738 B42D7FC4A35941157DB85F26C8D11099545E57B0AAA49DE793C778B8E75F45CF566B54BD1DDD7D 17E3621418F09A96A4EA2D20AE83D88E45C0B083E0CB9F3D5FB7D704581BE82E3D242B3EA6A7A9 29B3B8AF7F5D20CD8303E7EE1CDD637E3DBDFA0B876A2E7B7106AB66779F1ECE9AB75E4C2083C7 C97B246EF9B67937CFE4DA2FD95A5E12D019AEB10A8B1F609F2426F53CE3A6573B8A13392D762B B2A97FF2B9ACD94ACBEA9A46D6F0F2C464145BC6AC740A19DCE03904FB928F29053493D4CA10E1 351458BCE3B003C4BD38C891559E363DB4F6189F4925E314F77E7900DB5285C87EF4E2C55B9A12 CBDA6762604F98B6D2209BC928DDDA85C5B5AB12876AE7D6864E8A242EB1251D6FD05F8F088A80 FCF304F598F9FB6AD997C8A5481BF577FA4F61B2B742FAF0BC932E886A961B060E6320C3D49D62 7C04EB0295A7DF9F8AF5F2BA6FB64AB76F685781460B35B7C510E3867DC0DC41179A1E8BC5BDB9 5DC54721AA06B8C2119A8617674BD10F0687B07D56DFD63AAD41DF660F600DFCD91DC80645C4F1 3FAA4A6C4B240863F6508A81EDF8B867C948EB7D3A7753A4731AF75F0C05DE4680CE216E04C8FC 49BC1CF193589EA6A33C25BC5B7155D4E34A43B49A8C37733AFDD714774E9E70FC22B40D6C9192 D073E2E9731FA2B80ADE7D40ADC5FE1ACC52952159137FA5B30A7EA95C39A5B6CA9F6F1B3598B2 90EC820457E11DB827E3D458C2E682BC1FB6B5E74817246B4FB47DF7DE1CDB835A849078BF71A9 7711EB1F74791E797B3E73FCDAB725C5898D5188BAE77432AC20087EF62211EAFBA46B91B295E0 8FD9D4C98C1331E4A1D7206A60F03EFD2E8925ACD1082FDDA8B2B6980B960C9D03BC754AB0FFF3 EB6E92F8A6D41954CCC7A6598CCA897057141F0ADDFED6F802994D00EFC0771E4B5CC79CED9844 E2CF890AC9F70AA4567102ABCC67C084AB818076D3134089E623CDB5CEF16E6AC89A1EC34BBC2D ACF87E3D7EDBC5A2FE1774FE6B5BB78FC53425D364919E8F086D07ED1ECA919F003A1C5C05B914 02086AC63F3546A34F2F99C88140F4C51096B72169B413043C366BA7BA2E5D1DE570FC1EC6CBDF 03658EE0AB3C1144FE15F8E89FF354E00261483F366BBA154DAF5E6D910F1D40F7DB4BBCF8D82F 4BEAB925EA8B0F5761B1517A2BFDD400E6B6B9605034688A7148596AA8F25B97772979B49AF56D 28B10146125B19AFC56881CA4BD579D649D104CF443E94B186FBFA0F29538D8AAC4EA3C1774A7A 64226D033869F1D821E98B9C9C1393FF35EC9A962BB8BFD3D8D062C086234D6F14D9AE028C2957 5114905FA35B368C44BFA14DE4E73A4D6C1A119B79A6E3EBB915C9D48D3FAEC3EF31B7AE39217A 21B66FBA853E750000D395A9BE87E78CD91F390C5919766CF31E45EFE678577ADB5931CF5553AF 54F9A0E9BE0428EACD715F7D20C3D75D20810C4C0D96BB10C14B557C201B954841501341827C1A 30DA27C34A5A4CAEAFF4A3ABA566249EB82BFB367EF41635B2E27133C0BC4BF6EE280401B00B48 87EE78B50E524A9526E442E2EB566F3ACABF1C60C65F60075C434367C67DA4AE42B1462BBB0AE3 9C83123BEB32327FA66C18409CAEA447B8F504FBFB2CA2EB0448691CBC3C1826AD55697611E310 BA84B3133D1240BA430B08010BBB0DD02A84FECA352324CBCC9AE188CD9213C2D513745D868C4A 6A0C995D7B455034DDC41A8ED06752805DE487375C69DD746D7F8940101EA49871A4B28AD792A5 69E76930C32568A9ECA82892B44E111ED0806BDFFF59EDD79B5BB11F82CB7EA201524E6D6D8343 C3EF568F33A450F8A25128218CEB810B4D4566547F2F0A0640D7F4C8623945E5755BB7B6B48272 96AF202D9F4B17A2B4CD03D961B5728C04E275E037E49FE8A29A89972D0061055357A40DFB5019 D0959C44E231D6AB8C6FCC8E24F5291E4B9C082AB5F7D58CCF25 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr25 %!PS-AdobeFont-1.1: LucidaSansUnicode25 0.9 %%CreationDate: 1994 Jun 04 10:42:59 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 25) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode25 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 161 /25a1 put dup 202 /25ca put dup 203 /25cb put dup 230 /25e6 put readonly def /FontBBox{-26 -236 1026 815}readonly def %/UniqueID 5054525 def currentdict end currentfile eexec 8A630409A330FC5FE1ED7CD3C975467DE475D113569CAA8B923FA3C5A4A5DBA1B426534896777D FEC0CD780FDE4F4A4B37CBF69BAFE9D7B1674F09E7B60ECB1F741B6EDD9AF78B9450C77EB98488 7838A9B1EFEC7714CB963DC0D2D7FC90DF439E7B2FD67B771E742DC7E7DB927415569E8F7DC363 784A57FC7AC7182B65E2B2B985E0344DA414383767D69F0072B82FF65429A625F418B9554E3934 A06F03727E3C9839A4E576E2351D0253B74FAC9084AF6E67133A5537926A8C80589A37F8ADA04B 5C2AC1126AA5CCBF23226508D011D14D13C6FFAC13BC42FFC82A696C06889B21F1453BDA33C3AC FF81DDCE02738FAE387DF215DFF6FF74471B4EB78EA8C9F24AD655490C27E6059414A56A52A9FA E82AC778F1210142A0F9051E5AE4B9E361B1FB91CA17F95CE918651919C7A235BECD1E676D582D 643C13D5912E896FAC77994450E36EB321BDB157BC6DB7FBD0EE4B0C1A420C2645ED9595D2D21E F387557875DF6A9D774DAF42CA703FAA6377C62B435A83666621A7C4E578421D8C68899952954B E992C6F613EC3AF8C2F4EC93A4AC5D7860448117BA2B6A968239B7DCC4036B4B1FBAECC17CAB89 BAAAC5D4362C3CE32E00409A6AB9B231767C1A27514E9AAD74C32EB9F6C0DBB6F839A28BCBF862 D183D1247828DA457DAC59A0CC0CA4153457F0DF3B5D6FCC06BCBB0B5919DA74CEB11DDF706F15 B342B26D610DA0137ADF11F3BDDB3189C9DA0F0E870986F86C61CCE3AE60F771B65DD2E920BD6A 5094FD2A12AB3A59052BAF45248C006D431F5B04C9071F925A7F52C1271E7FD3A7F9B60FAFAD56 8D8CEA6BE39066D98313C932A77140F1658FAD3B32F7418CA0FDF48BDF17F3AE6F095D34C707C4 9F50C3DFC3148BEB942A63A5619B94218BA5C1F63F66ADE29E1396CCF7CF7CA97788D73D4671D7 BB0CAE1B8E13CE410F2172B2445CFEC734F53A6EF3D3412C37908D22E3E80C817EAC0955CE2752 E9B2327A08895A254ED18976E194E85CFF852770A56665EBAC4EAF1F6808F6288AA2776F813D6D F089F25B21698D10A5C00522210F606F890760441B0871F31A4C0718527B68541A0314D67354BB 834F4FCD365DB2379468671DF697122B66E999BBA6B2A5A6D95E26FEB0E6AA3B4590D5B0C8F4F7 AF1CB7FDB904F10E8817F7045238C813053CB2096EE5DAC923CC9AB2DB9FAE17B2BA08CA49DB7D 71ED0072A402793C51EE08DC09FC9C27F2E15254CCF9FEDB998F0E3B12C60BAE7CBC550A59BEF7 CDE1159E1D6FA72E0026BE03299D851776F57069E9178CA0C53CBF939792BCA7CE52A3A90CA729 91180F917F1E21FFDC2E306595ECD95BE6323E539FC73511C7FE237C873A60B4B4E06C49C39C1C D1CEB9EDAB2891F30BBE64EE95C27487325C07F8F83B2C0CF8B394C3D0ADA55E4B4541A917B23C 6181480F95544F2DBCE9F22F40DC467F300234CCBFD55A919A7B4D7EF74D0C60E83F2627BD5471 97A31EF7AB8E8C27A2EC8CC90B846212BB79CFBA9DD702DD627CFB9FABF73790BBF5AA82450017 4E144A95706851EA88D454A80554853D7EDA089C97BD99805AD58EA333836351E1A6FFBF3F270E E36B9A8A5C98FB53B9B77AF49F3330416708C3F8C9623899CAA72E8812C963AFB98FBDB4596F18 32EE5FF6F6AC53B618EFDA664A090C1778C5D340CC2425184EF1AF9C6A7BC52167584CF057F737 006496131A33D19C40B00B4A728904CCF6669F1AC17E354B71B9D6BFB322CFC1DD2E3D66C97FA5 7886ED6A5455AB1AE8D51393C52D017C5586EB16FAD517AA4F76B7F0E3913C235A5986A767FDBD BF04B397E7150F9CB9EE84BC53E65CEF2E4CF91C0C819D7A4860E35092E3EBF647B323331C5497 A980FA0E95D21A0AB2D89ABF677FBBBE1811983D6BE163609EFA447878A6B9ED22479CEF8C9D19 E8683D22DDA81461371B0D4A2F993B9ED149E14BBACAD0AED92C0B180E46DBB02F8F658A470ABB 3688C09C52006DE3A6264E0F33E92B1C6F69FE0148CB284DF2283638D396E5F8C8C7FB2A531350 F49ED6E90498D2C30B6D48BE680B04C6CBAF4B2F92347AE886270B5753D12FE54A8CB0EA003022 0143DA37757BCB85E0664D61384FAB84DDDA0468702C397BA2A52098181BCC26ECF597DE542CB8 B1A0F199032BA329EF8185D97C9B536BEBDB7A9588D9EE830804F0245FF142D4BCBFA74E1D2AC6 BFB24ADE82B947BFCF2AE083638301E0D52D0838548B9B935B52BC5F3B2FD8AEDA7AC6A0F44803 0CB7E258BDA85320A3D6D3EACB188956D3FC231708134DE6EBE2A296EB0F07AF58E5FC366472B5 03FA40D0156FCA4320BC906DB75250AF4C55B9DF5410EF3ED0DE8A7DAA82A8762F456BBF97BC78 3849A1C9E1E9A7EF154084EDFB53FAB120D5F4A68AD4D83442E7F6ED51F251793E1F5D7504C874 388E61CA7F9120C55228EBE6EE837BA371361407776E82796F5CAE390FB05E2FF92984F15170EB 89296050D3B5CA30D0ADCD59B9D666643FB69C43B2818F03F0BF529A5E68FD043DB7DEE7EA3C34 0FDAF3598037C8C0F8657F16EAD01930DFB8A633572D6DAC96CC22EABF4361A4EA443E55102E45 C2A7443BC2DB4883B1BFAA58343FAAA48E347109B9F5D306E450E0423320763CAC8F4B48177C85 11F6703A383803215E520AF7CA6C449C4906FCE3695117888844DEA4A505372010A0E130FDF705 A37E1DBC59691D785D37D40E737AC708881A603BC0D97730526138BF428D951AA75579D159E612 F847418C23DD120FBAB2CBBFEDF9BC3B972CD59132C313D84F5CE45B0740BA7ED8086165203068 689FE81C9CB701D205C815A8E4BF2C341D264017ED02602ACD5F6576CA7606E51B3EB22CF7AFCC 3C466B69801149AF48A8E012CC75559041B984640EC5F8043A14D70ED3AF1AF7395213E13AA79E A3BFE238CDA1C40BCD49A006252ABC5B19EFDD78BCDB02987FAE 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsi %!PS-AdobeFont-1.1: LucidaSans-Italic 1.001 %%CreationDate: 1993 Aug 11 21:10:09 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1992 Bigelow & Holmes Inc. Pat. Des. 289,421. All rights reserved.) readonly def /Notice ((c) 1992 by Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Sans Italic) readonly def /FamilyName (LucidaSans) readonly def /Weight (Normal) readonly def /ItalicAngle -11.3 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSans-Italic def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 54 /Aditi put dup 39 /Alessio put dup 41 /Ali put dup 43 /Alois put dup 173 /Ammar put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 33 /Arne put dup 59 /Art put dup 61 /Ayman put dup 63 /Barry put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 96 /Curt put dup 89 /Cyrus put dup 234 /Glen put dup 189 /Heinz put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 60 /Jason put dup 32 /Jeff put dup 62 /Jerzy put dup 34 /Jim put dup 64 /Jiri put dup 36 /Joe put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 42 /Jonas put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 88 /Kettleson put dup 90 /Kieran put dup 92 /Koen put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 126 /Michael put dup 177 /Murad put dup 91 /Robert put dup 93 /Robin put dup 95 /Rod put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put dup 121 /Sebastian put dup 215 /Wilfred put dup 45 /Will put readonly def /FontBBox{-250 -211 1099 967}readonly def %/UniqueID 5029007 def currentdict end currentfile eexec AE40F8585C2492B57FC8C19373E315912C0135F3613C38B98FEFD06419749A2EF936D049568E91 2C3B4814601E6F1C68E63168C5EFE4A12F1C972A88E59D27C31A2A9C0BA365B6FE3266DE7CD0F1 1D5F0698C11E8C1D4F1056410F924EFF7F265CD09F63373FFF21407562BFA055B1BFA359C5890A 384338F55437BCB13EF47EA2FEB34874DAE99A2A8CDF087F076588CEF4F5F52D27F99CA2FCACC3 B00B2DAB26EBD6CCED97C1076E2E38C1C7179AF884D34E5981F3B13BFBED7B35D318515DCB2A38 02E5402628ABCA3D4BC1F4808D32312ACCEBEC95EEAC23DBDFC3788D91B5D781933BA1E7A9E7BF 693D5DA7A9281F1C6A7C34E8D6A8145895DE4B6AFA59BC2F66198E226DC29A066BA02F4739FEF4 FC344E81EDB55226B5E16AF7282FAE761F3D9F253D76D6442D5CC7CA3043F7B37D5A34A905ADAF 242097EEDA53782431445078C0B35090520B01B437F01D891573DF402A427CECEC5386F1603BEF 05EEB7DD5FB545BE8042FDC2656F47C7ABD12DF9DBA59693E4F9A554FE067AD8157D2BF1EFB7B9 1C54F92B27DB8FE4AF1572A8E3131A5FC251FC8F3D5918C30B18337CF3CEB9AAC264E467F9C4E1 3BDF64763DF9650B0F6A3FF6092F2241B1DD69076E3878B875564E5EA253BBA208DEAF32B48D82 CA70B0D8FE5181B29362D1603FCD82116B2FCC77931D0E121CDC23CA762E8C9EF47EF6780EC5AB D9CB39BF6BA8F4D191F9AAB5965691C4346624EF1559E151378A8EC69A126FE29F5BFEF6162653 B55AA546E4779E7E60288C059D2DD6FAE507F6E01DB910D52D10EEA2762D59A01C2F1FA458466C 07AA5A0980968990E18D71F0AA71BBD17CEEAFF025A16913D1BA4D5974D6258BA0D1F934656B65 19A3AD2375DA469B27BC108F919BE01C833BB6CC59AFFA34F976382579EC5253B4610F9143318C 050160C7002E29656B29874C5BC27700C912C7B00C1F62458775BEAF10C5A2858456FD04C5B6E5 B790085D9F584195CC9BE74E7DEBDC57D5084C3CF8168D7B194D57EED9F72AFE24EB78A7CED489 AB96EE6F2CE148C3C8CBC466AA2B35B36842CB48476D303A7717C4369F803A4FF311D53F1A0044 B5A3B423AB2D6F361D233CED47B79D579DC4BBF97AE7E6849CE72B35CA881B4680F073C4942FB1 04B110CD36C12B7FAFB9F8F03EF419A1A5CFAD1D28F13EF057C795F53737018583F52474008775 5141099E0C46D3A7F65540A05DEFF5A0A1C68096CC39FA13354863897E93F98B98E2C53A693C2D 57AF95936FA23B61A55E26214D5B2337C4488BD6DC93DDA298FD77A80625C917D9D432EC1AE92F DF42E184BCC2400C51465244F338DAD00BF384DC5910AE26F964CBB75F091609E73A3A96D8D07D BBC4DB58148E2064C50B5EBDA56DFDA7679C10EDC505D6816B86241997582D77385E0AFD164AE4 5333A18BC4FB8CF818CEF97158CED9628B78B6C28BE08E747739F924A7CC9C9EC72FD12FD5BCF3 2D200E0FAF7D7C8F007C84EB868C2118F0A159DF0435C4F9E432F5F7DB3766CEB23939415E3709 B1E5E14996C0B7123EC993739ACBCF6B28BE7628D11843B2AAD85AED50C9D82B5151EABE73505F 3A1C103B7F02C0429A32F3376C13863C347BC07472F6CB82B39EA37525A46B95F9387E654F8076 EEFDB79193E97C16A69EF102ED96F180F44586ECB46F45611BB4FA173B4C8DE27E2C4AC2BD3E91 8441E44FF42D13F9C119778806FFE56B8ACBDD4537C981571639C5D9D5522C822DE5F29B426B83 74E02DE01D2A2B30281676D4593C5356214C5C6D3FC679395E0A838A447B2BC803218F97AA6C92 EE62D3600680CC93187A2D8DC3D7616F4928CBC3E8C42BC5536D00A0F1D3FB114EEB9DA1B5FD89 50EF78BB34E7AAAAC3AD105D960B3AA743CB487AE7D000E14C5BD14A2250AF406174ADF67A0BE6 7D62771A8D6283F574F314FCE1FB41B80275B825066BF711A982E58E8F34657DB15E29B20B5EEF 6EE8ED0BAB63458DAAB556CFFE712851DA37303784F656309ECAAA93185643264ED4B7B6E05829 67E94B9311A2636F0D6F18BF83E5FE28C81DADA7046E5D485B6A9754F679F2851C5C3F4071153F C25F09DB849C09E9CC34A96E0DDE7BF692895D4B6678A1FBA8DF90522086D5C64715DE5FC26F16 B954EDB7C3A0A72F1278341A1018286562228E2EEA26EE8EE340CB332B43CA68C65A2D57FEB45D 0BF8EC6092219E7EF9CC649834D297EAF3B5FB00F2F83399311AC5FABC8761A13575B0C4D917BA 0AA75C78AC3AB78AFC746CFD5FEB2B91073F2FD8D4C2A3A490C94BED5131622DA474A860B312AC 4675661BDF91D076228D148270253325F12147C5A7FB25FAD15732E43004A70F095EE3AD448D9E 336CF44C4D55CFC772C92E15CEEC2F56A002A6E1670ABBB074DBE0CA55BE5D1FE65F5A9FF90E1A F4A4B5455B9F3A82502C4D860468B7E7E91A77FC043C44E19211A96D8EDDEDE29FAAF156AF6C71 CA2D0D26A7AA68A2A0864BC236E3B410485D7CF2A51C3FD22A147E3E44E723CCE629A3E67F5321 6BF328C2BE130CF9C05260E4E5FBE73D9C2032BEA5AEE7B0ABCFD2F6D9874B77D3B61AFDB4B300 55A0033C9EC86962E50CEF67EDEEA31C093B3A429D9AC37D58056FB739B64FD22BEAF7955D1A12 4E1F5F81C2FCDD89432C15ED61285B1D300C10714167D1D4DF9C7B0646BD825805B7E6F21ED4A2 06974B556EE6306C84FCB475F4F242C440A41B67B543BFCC178DEF4E58B739ADF0E14D4D0137B4 F48BC39918599A70DF1F0DE49F6527D25ED35B5901B2EACB584E8F29DE5CCE15AC1E31D4A14F43 CB2BE1150D22AD419EED486AABCEAC25F01BFDFDBAE2E3E4C899B3291897A638B4420960CF7AC2 F08236D1D7747AF87A207081CACBF00A0994C2F98EB90AA3F4211EEED6A0425C6BC0CA31DBC6C9 DE03E02A5AA192F0187C822AE022AB776CB891E95BB90BB89C07D34A38911A34BA591D78B7DE83 6BDC01BA45F0A66D735E317B06AF7EE6E817E98FB776EBEAEE6B8AD56FF5DE1134B7EF55D87F21 057F1248CD06932F6DC349D2E9B1DE0B81E300625E370770C548B89FDA0AA4F8B7373426A4C8BC 200F54CF2A587DD11ECF76E2E324591FCA3817DAA9B3FE117C826F5B53F24C722F766F73903C58 A81A2067F7A3E8544B64E26BFBAA0AF6FB10EE8D4E99C49CAB1B397E0AFFA566B007330EE54DAB AF0C044E8FF8CBCFBD70A372C5050F02AAEE6E2A648771A199A8290BAF6ED4AD485DACFA5A4937 CCCA8B4D03FE96D7CBC7C60E6E95B53BDA2597C66168D3564D1BC6617033688510AAE0F6DBB16E 192CBE34F5E0364233AD2A2D0043703A48EE02E2B4576645BEAF3D44622983407461F2E700F3DD 51DD10BF742D645F22700223960637361E88D79EA8EC0084F5F20D0BA3EB94A7B5EEDDE499A39C 1D621945DFB5937A31BEEDB0E2DE8395EAEEEC4A912825EE2D30E06A351862C9F02711D38F63C7 4BAD03D267BCA956F029F2BD396A577000AAB31B00B004D7DD5F6102D7FE0BB8443AD768BD6051 CBB0F6C74FE866A2628789EB0E2044F2EA6F0D1686BCF0BB7F245AA757A20EFD93268FC1E140DA 35E759443BFEB681CA8B10244B4E395F3E9A151A5A3D74293E5EC0A2C2D2DF37132705FED78742 8C5E876F567D1CB77F7338F70B3FE5AD1F7D9D6AE6AEDED983B638C5B1F6284BBB8911387C2CBE 51B92657EC57F3F28F9F71BFE582DE883F2F24A3E1BE90D5DB001E7B69968AA2B8564940A2B3C8 3EECE73D1DF1A51672429FC169488D329D8AE41E0D7E557F6678C6E36EB1877DA3B7AAB89EDDF1 54AF743BB2FB8F4EA0AF7E8761F3EEF6794FE66A5494E74F7428EC2D47149F05B8E3CC934C46B3 8739D1BEA64A39C4AF8CC42187FAE682546468FE3C68521D074555FE83FB96B018489EB12C7437 9EB97E53BE86318E53494DA7F214B9EEF02B1843DEE3D3B7FD4F94986F310FAAD236BF55E7137F 8B35712AD6C103FFC59F05AC12629D2CB39940395C9683B49D80D0548A17D45A422F9BC0F02112 DE3AB03E5CC55DF670637BE7E4F0ECEC9B324CC26C16DA89550D80C609134B14E9C5575662A309 783794C673B64C3C62932C64D9D9F560CCBDB7BB6DDB1A0D67A6C1D09AB7BD60348F91107F65A1 3EC3149656CDA201356CC2AEB313A97E203C8037C9D5C5A70A50DBEB91E8E4B54EF9BF8DCCC033 23F8AAE82CB2B60737C52832DA384B02AD2A1D80EEB88AB6ACED1B44AE582B9CAB881E44AF4392 D29F81A30B430463A0D48D26ADD6D7896EADE1C0E82DA83E28F414BB24086566EBA2BAFF475CFA 123D905A8A307E135DAAC8735B833005EE356EE627C6B3544DFED3D62F25E88429C244288ECB83 6733096E71F85E602FB5A77E7807381D0F3805E29716B21D21AFA3BDE43C3EAE43D33082F2F14F 72CABDFA02022D3146A2AB88719998C6EF1984A5891EA63E47C995F5C484D8F3854A79AF856F57 54E9DBBE35668176F67FB1ACB5238423D2E1396E7A4241574033C78F342D11F97D8CA238312129 0D467F2A371BA35E52024740F82CD91A23525EF0597B06A1CE57C7D568B25A96EA0E62756F5E07 1A63F9D2C22E1C3806B2F150A57E5ECAF61A999E3573E613F94591FC4B0B8F4BDBC7D2619E800D A2CD525EA0B722CC25C26C740265774CAB6C3CF110C6A1C7BB9F0A2EA2D03CC8C483DFBBEEE0AE 831A31706F790C0F695B926C89081ED62B5D5E1F02F405DC455751D87BF06CC05147D56CDB03E2 16E4EF39CA3E976F786DEDB9CB0FFC98E3B115E4BFF4BD63C2BF6D577971ED3FD5525448558DCF C4D40E681C9FBBD650712C69FA78EEDFF970ABA0BDB69E33A8DDF3A08BC0E4DB8909A2DDB35096 4FA94F03284532ACE8C62E8E0C5FC06EF66266944FBE4C6C239CB66A4445BF6E50E1221F8C9BA3 2F11E198D306F31DFF8C9CAA5AEEAAB08B30F0ECBCE3CC3329AA58B1F165F151362BE3646EF3BE 6120E2B618135127192D4CBC77CBD03A83F6717133B61DA06E2118AEF126FCEDA71A426B6801C6 C70AE8192EA70C6276EE360B9D89388C37D075644A5009E4450B3E6F88697DE0C0A2E6A1FE58A0 72422BD671FA241FE11788AE83F63AF4114D06702D251FEC634E562CE367948521FBA53344D5D6 18B0A9A2C5E013F8C790BD5DE8AD289DE859768CB488D06F45DB114FE12B2BA3FCD88099F955CE 2A3ED377192307CECB2E7227DB751776DAA54BA17F5E7137E1AA1F1B6DFFE782F715FF29E0C370 76BFF950438DC7B7222A67238157D769C27F48CD9E39AFC1B0AAE6E670E20E982506FA564ACD52 9D108F72E9A615C61907F00F6DC9B3FED3D99380B99242A53027A154891DB04C3ED328DC4B188D 9080BDB06D9513098D1C8A69D844320CD494DA7DCA8FE6B008D0DF6B3121599E951AE22A9EE37F DEA7A4092509F1743505DAD2B07E1DAB21D84038115C10B5EACCC9C96C62A111AEA09B3259BDA6 20202DED8FC1BBE20A8CB09E7C77055A9D0BD7D5F39B8F065B290900603EA23896CE2E7438E6CF 63BB8435EFA37FA35A2588519FC79533D3A1C1B376EC7BBE92388C3F3248C5239C4D21730DBAD6 65A7785867BB355EDAC969FED613A52354E97501D56909BAFA0F87258B068CAF0907464B498861 1D3E7E80E645F7AEA5DCBA04CE122C7A47007A73E725DE31C475A57988CE41BE7D1FE972A589F8 D9CDE0977492E07457698B8E9E184A70EE761583058AC50884A880936F001D53D182CF9605E588 92910AB45E3C752B6D266CAF22397BAFF1591976B6DEA208495EF675876E92ACFBEC1887245048 30F05659B2E73E8E049647F4F28F529684085CB30EE66FA5929774E49C15875493F661B77F0C4D 6391EFE5A0D384BFCB2FC1820130E2E519C3715CFF2AC4B8A74E81C368C55FB5782ADB9BF9644E 2FD416320DD3C6CBEC64A992B3FB79991E62F129D5187763E7C7D8473F963F43F0D70A8EB508B4 970A1572835201AE91F48B7FC35D0D12E7015CBD6DE0677D715E0BF94F1F9D3242F8600EB2B4A9 590BA94CE6D342D9342057E69E0B71175B475F9F9FC8CDF962690867B6B962989D94B7CE670CFE 23D28E1197AD6C118DAE3CA2BF62FFBF5A6D03C7E1D85199908F9DAB1709E1A3FA4C1D18535AE9 5306E0641C9C328886C72C91B49B498202C8B72EDD5C7F5DDF178584A24E6A89DC9EF5437EBED1 CFD46ACFAB9678F27F4BB80279CDB62D9A23761E70ACF40ABEB38BB3242FBC012B8AD563073BC3 240C6AE167A56B084DABE9096EF07C38BA3E6D380E2A1D1CDED670305CF0EA1D070E5FB8574D30 8598EEBFB0C6FC907E25108902BBAD331F177EC95717078B97EDFF258F55793FAB9EDDC508FFC4 719F491D791F5D8487FD5A31992A1E6E4DF7C82AA1BEF383C2F74ED7163AB6DE334D48A11520BE 2B47FA5C0B07FCEE735F63CCAA25507A78971012EC943DC2D1607B3F44DE13882DF23070BC066F F74646DF196E1688D7350D7672F93691FD5950AD7ECE2FBD6D4B1CD777C88DFFCB90B57F9C829B A0C9F061F7DCC650CEA49D70B440B84276E432FE47D7D4D67C241F8097469638E4F5076A65FF5A 15FBE8690B4F6788E843753F6D961043BD8C7908EC2A2EB795AD2955DDB8CD9B6A8BCB3C2BC673 0A24CBCC79F15D44A6AD0CA0856E661EB07890BD79E93FCAF93AF80BD1BDF915B799C9118DE981 496A963B4A9498E11893F19446FD9AAE7E4B4FACA51601F5C54D46E7DA49750FE88F420E9D7325 DEB5A6B091469240AD0DB4537A46E71595FF598BDE54972860305F59F593CBCB7B0B26130CCE19 E0B553E8D52B1953AA0E463D49A01B3B2B588044D423418A58665DC05B5AAFC47E264985934F03 C358035E5E4DADDE030060BC07E7F0526FBEEE7FBD26CA50111E8BE27FC021214AA7BC8518E51D 93934E23270DBEED1246F623EF50C9B12A3A79FD2425DDAA17B4375FBC51A1FD8A7A456441C5F5 C8DCE1A112C00058434E3250B841ACCFFFE4EE5CE4E8DCAD1DA76C39CA24EEF79A2297B70D6AEC 75B3179FBFA7A4D90B4522A0F4243D14FFBD028961211739790B55947C4DC63F0DB959A3AFC7C5 65D672D80422330AAB64D51993BCD2A34FDD8B1848F5C400BF5236188C683BCFE47412108B59EF 41B7465B020FFA6A9BE53269B4F8AB5FE2A9373C3AC12A740EFD72228AC156A999C6079687FE52 19BA162C917DE80869339BC76A9D7DEF6224AAB13F1E17BB4FBE9722B94DC84256529932A33391 D085A85A4DECAB06978B9166F075B51DACD371F172D428081AE1826645F9A461C257A46BAEC29D D6848025FB7C6F027D67A89EB217AA9879DCE693729D36171F815C3C6967F8DDD4A0EBDCDABA1B AE3C7901A071501004DAA11EBF4E6B20242EB6C4932403A6FBC9C190C8BB789CB3C3F2DB0CEC69 1FA2A1632F625FC6A1E91CDD863CE75338CE56B6F8863D77FC57B211D413F75B2F7C16F5392015 C33B55B49BA91C9EBDD5AECBF97D80FFF1B84488FB259623C858B14BB3D78215185A866576F34A 0E259D58C750992B67B0900001AE2CB8184419C9BEEA52ED099057805F53B7FBAFE7BF2FFCB3F9 7571A88C794B5AF35DF67BCB66CC21536AD69F860DA40C66AA8F6DC6E52A9C0CF052BAB6708EA0 0ACEBE8A2D3FDD21CEE891EE4B905F72845B3BAE8591A20D99EC177C44528F56A09111A498160D 9EFF65D62BDFD201B608B578E9E052EC257CBE33662040ADF68209F5E7876E1BFB861E21405F5D 5D3A2F684C07F20223E26B289CC7256B10D699637E5A15F409ADE71779032310DB5FB5C98CE037 89EAFF598241368500C76315D8E3FBE028F587237B1A4E71BF0B52C181AAE9B88754ABBE054185 A035D118630FF66EB5A48C47949779276B5AC20699F3A33ACB5F9510263670B25A7E3E92666F3C 0EE6AFF2CCC733780A0D98569B4E08254D9D88DEDAC4F50EB1FE9CBF8588E301FED58E36336167 7F47386A37B86186D0A0A4627C2BD0C956DF9C0C9209F3275BCD65869D14B94943DCB3A2FA8B5B D7434CC1265F7CDA7D86300A5E033AD24468ACC1809460A8DC4231B5409909F865C6CAF7A2D998 3BC3ED0BD15585A43C6598D8D3103547170067B51D0638150669DB52C1E371B6391D2311E5265C 6FDF27951111A7524A304E865898634CB768EE72B812A99DFDEBA1C284A0FC95442921B8DC7280 2EF144335923FE114747EB3CF24FC652DA97A25C2C92ACCFDD15E82144500A6BC1B2F79FF4F722 E06450D2E6335839962111DCBDB1094FA2D3E817EABAD4DB131F01E453ED5CCB794316E5D259E2 7A0625D1B5827706503B0F67BF168DEA99FFC9AD1C6CBBBAC271BF0B92745C422F9BA22A2D2F36 A0964C052062EC7AF373244D8A49F60EB8C2881906FCC197BC9510125DC61628C8C1B29BBE00DD 343075F33AD0AEF24F32B0F2EDF873401A60CE8A8B6176ACB9C1A395C8861BA36322DC7DC85796 6C8C77F815477C820716F965B1E1F0AE5129A01DF4507E0E04B5168FA3566AF291F084CB65D0FC E86EDE9EC19EFA7CF75C9749CF4B5BE79083E8FB7508A51C5800D546FB14D4D8B5191C598BA5B4 82E8A0C17F77CE96EDA3179A4A5613C9235758699EF8E2B4682F920A70CEF54FDF59101C5135EC 3FEC9998660F8D9620B755F45A6A9FF807519A5548EE4BB55CBA5FE6D407499AD47707606DDDE6 32D7AD1A58FC63F97357F4F5C63E4622BF4017B0CD757D554390F27123D17494630A756CA2F1A1 A872F8C09BA62F76E5910578DCD4AB4B0DF33F6BF4DB1237EF65E5FA97C593C90728B12FB17407 FD681A44EF78E14918E7B0530705A1B8F27495B3029252DA7A3934F7209D8BA8442FAC0EA0C03D 08623347C4B17B249B91E3FB30FF88DFB190AA14276D7A878D6711BB273FD611E15D13541CEB1B B6B059985449B7A63C8C425A57AF00293AE85AB3FCA9B709FA60C55EB6AAA639EBCEF4847DA4EB F28A235000471D355202F948B24C9283FD0C9C9E3AAF88735E3769B7D60A9410B61C9D62AA5425 9E43AAC9208A794D56886F983EB006ECB5084CDC8295D1EC0F52B12AD4BDDC14E672450D2BB481 420AF2E5836683F31FB7ABEEB5FFE9D5E1AE551D3A6E123ABBB141BF313E5D4ECAF00A12C441AF E36DE60877FDAE8D255DD1F8BB0C0DEBAF10EDAB4CD2C79B4ED1CDE61E57D12B389C541A8A1823 53637D9C1A48CE343C88CB15AC45CC54EE6895C685F89691D09AC4216FDDAD8549D164E8BCF101 1C2D97B3F1DEA3D7C0EE3049860A949D8A558553D5E8FB358C8D2F31A1DF90BAC093E7AB45DCAB 9E9D4A36B5ADE3C696921C3545E6BD29587068B57A79DACD07C50610EEF8D16BF0CDDB6CB0F459 8EE921AE8764247A771F63A3E8F39B072DF066C1229948CCD60B26C2FA9FC8467F09762BCD38BC 3C5A17EBF085DF652CDBC0386E5F8F908C6EEB9E8B35FCF8BF69177FE9002592F93733D3502725 1035E29E2E4A2C17FF86B5E884ECF851CE8D1CF2E667D9F9FA62EA5C29858EE46647F77FEBD6B6 071C827470A97888B53EDF69920EE368044F9DCDEAD7D40D21D44A90C44CEBA90B64D800B6F083 5EB84A3D66BE4F6B1B173B8AF1D0CFE9D11FA65CA2AE847EFEF063BC4400D508C49C220BE19F9B 14A6E76E2D65E54DE811D104FBC001508ED53A71E6965FEB07423F4846BA0F0C70518D2D9377C6 FAB46993572179E9A0D75EA6F67C5B7FEDF1B756C882DF1010549DA4B6519E9CA28C56053BAD1A 9EF5D0428F2CF9355320B70ECFEE125C9B752E2D30C6E259F9A44FD44BB45CE8F66C3AB6C27DC6 E2A8919A2214220E0E5ADCF6C885966647797B9AEDFDDDDA5726F45F407034327F70C388B6EBA3 5227ED48CC572516A3FF067B4F7707DB59CAE2B37663CFBA1E7128B43A2F1BBC209BBA10D71D53 14A31B03E68F68A9A97F32C14205D4E998359039CD08D21B0B4A01FA2CB7FA8B28DB40F23B1301 2D1664F42D084CD6D49588BF294EECB7C2CF18B65106BC49DA160DB79A63A9A7194C9F2F79F2A4 F97EFA10698F291334E8B4F74C9D948F557C25C4FBC798ADA8A53B9B0E6DD4BA50968F5A5707A3 A6428BC7CC56704534463F5031272BB5C08DD6F4033FD1B5E1A395316AD330599EDC4E021EB125 7BF081AC55857A913DFCAF39F66A1ED2289A57AB6CDE8A2F56D11157569484BF6EF26B04C7CA9F C821FC46B9F13CA07AC0D90FAD8AC2866BA8DA0D67B908A01387E54F9F9DDEF25F50A1DD65717A 3533023CE04038271DAC6CB401D3F692266712D3E380970368A34962C60646B12D129745C961F1 F6E17FA854630F7FFA9E030A0C2D6001692E71495AD7492FD65912BBE636050F85DE19D51F2722 E8FEA3C931541C9C370626163C528C1A3C0E587C7275806D08892C2618D0CB66B6AB37EB96EE34 26274E9E4A036C57AE33B1C7D50BC5E2BA42BE0F14D32F02F77375087BEA2D3D44366E13F9CDB2 096459878D802A151789E54C21E09FDC98C6A3567B7F6EF03E7E67228998E1F893ADCD0EE49F95 22FFBA193A8BC1D5A2A43FA75300C4C72A1E388A792586B3716979DB9679BD3779EC4D9F427F18 E4017D87C0B8C44460FE64C1A591875E589CB9A4818341FE9FF1E515F6D510685338514684D90B A40FD68AA77BE2F5D5536772A6232B386CEE391C88D1796CD076A2133474F9B1506B446F61D138 E5CE584D113BDE06EAE89D82F1AF25B78891766CB386332EFC60A57352BC96B42905C0072DDC23 61F20E89BA1DF2EFC1C18FB071CF04396A45293E44FE656A19F3AE3A5635560763D03B6039EAC4 605AC30D4E3B1A68AC6CD68B00D694399B9527F13D81099DA664919A3D15C3E6DEF460134A1736 B1FD53DDBD20C248D0832074C2A22802B7405EB6D33D864D97B78252BEAE3BF9BA5DDFC4CA077D 806289B7ACCCA239E6603C7D2BA41B7DC820F86D1F8530604D7E3F8A1239081D7FBF9FF9C2D9ED 4D672417853364CAF9F010CF08E4E060038A67E70EC743AB7FD3BFD62E7C209B0281F592700E1E CD0B18F65DF4947D24B2D9FA6C645348495864F66008BFE85089E6442856D0DFF9B27648A793B2 22E98EF332692C08FFB08A7AFCF9EE4DC33343F8FC0B2BF5F59EA5FF484EEC4D0903A7DE30447B F6159C922C3691A97C2308CC2B32683A72B3CB14023E76410345781F0949E918D47481630EB60F 891D13EA3AA81DA60DA50E67D0DD63E6823DC1375FC60738B633996A10B16BAC8CBF574732679C B238B9BB0C1507515558A5E1419A17DAF43BEA11E31A9F10AA8DF17DD9BD9EFEC13EF6F6D1B47E CE37F8D45D2817B5CAECBE38D45BDE09604146FDA57CC7E0814AC69558F170A7AC2F8DA6A5C7DF 485C1E16BB96C3E1DA2EBC5D76630A99A007AEB8F680F2A10182EE55A0ECBD17267F6A0E4AB5D5 4E062DDDA4DEE9506528043578853DE1CE8ACDE68938EFFE8283419D9A779BBC39221379BA2767 DE78BFECCEA814269A456AEC28CADA35B7A1F5DF89D57F9FE64B2818EFEDB506B1CBDE22F9E706 54A84DF0C0124124646EBAF633E054D704305B2723EE6848011985DCC11CB1DA81ABEB7CD5450E 31C218B45C3556B7D1DCD47D4BEA4E3FFC5930037B2664ECCFAD1204D8CDD7289BFA1B2F4BC59E B586883A9E8757EBB0525A53EB83996963ED8DF4760CC16B542BB7C60FE6C0F3A18E18B26EFFC6 CB96792CF2C2113E04C8E64335082EDB3FBD78DE0F1D61B55EBABDFD44786416F0AF593379728C FF15973618B201D872628100BA908908A978EF091A126505221F6C52E7096CFCF13710DA707347 308943095A0222411C858DC7BAA314EC1107CF9C7C699EE623981946E79B70177FE70BEEC2624A 928FBAF73B1CC7D65A6E76387EF3812177BA0914BAEBCC99564A2A26710129E23899D8822DF447 06AFECAAD63168BC96BB879D418D3A26C214E4F26E186ED9B645F9023013086767A5276DCE1B81 031D6F08055D5898C6C1DF53CF9695F0B1DDAAB78BB824B2EDCB8D726B2F477289C16AB9E85013 1E1E23221929D95E17F4011D2126D783C1363403D650D426D642AF6928AC7A017E2D36A60CE6E9 7EC189432627B4BB14B94E2F46D4ADA823DFD6093F9ECC8F01FE148E59C11AAA4417EBC801B0C8 D8B380A4922D9AA366BA64BEAC25DE3BB50E5EEFC4E0AA8E8D6E7D664FE249F01058D5CAAA8C3C AAC732A1507B9F84AE531A3F5A6CA32C812EC23E31F3F491F21835F655ADFD42E6387D03C500B1 D924D99572BC8F362BDB56FB6962800DDEBA947659674DB719E4CA9CA2CA8BB36E28CBECFB9EF8 16EC9B0AB6B464B959DFFD30F564E6C7480B72A5BE58B2B1527BF6967F08F929D98378B2D18AB6 2A73010C9FF49CAEF7C76CAA65695F1FEDFCE05A487CBE6CA689F4B095BDBA432E349816190CE4 BD03D7246F73B5A6BCA12E262BCCBA77E25C3A19241202EF50A600D21D16E8CFFA05EBB85E65B0 E3AE69730D4D3EF79A0525BFAD3659DDEC3F536BFF0EEA6693A683BF9259E098B1CB8EC38B1DC6 AD3B20DDBB88E1863ED1DF64A2452977A1C70CFAE0AC206977526D2EF4885561EDE9C0642D6524 12A2BCFF8B37DBA2D31079C4AC6B9CF26518BABF3639D9169FACEC29E42DA1F0AE2EE290FC0F35 149E0EC8807C70C4EBAFB12CA44B7DE7D95608DDBAFAEB476E98836E317187715C1F07C3719EB2 0560EB5B241932106C464D074EBF0B4B6EC4E86CAB3C00357D406EA833652D729D32069140817E F7F906E8650CAE88FABE5545CFE266F4966FCFD8F83DEED5C086876952F0D024108B42E06D4DB0 89EF77802BB2DEC90966D331F6E34D92675DAB18FA3334DF9918806BE5058BA582F35B2D742EDC F4FF8BA830F0C86148C235788EFC15400E08ADC57D6ECE093E1F7711590DA9D30017B730774052 6937D9A8A4756ACCB0A6BD2888CE2295658A9B534B88EE43DF464BA3AF64CE2504814D2B065B85 0DC705049E0B346D007B43AFC18028D4E9539EBC7CD14737CC1B7F10F2CB000A7F219DF60B449A 12D21E16E8789B7B8F67C354574B6CB5E0B6B612D9C5D5B0AE7D87342AB404E967494718582FA7 D32CE4D6A81A1C9EAF3EAB6060DFBA250685BABE46B4FF3BCC701AFA8A868F7029B38F3568834A 8C34EB0E6DF3D67334FD0E4838075286331AB693179C65BA5087988383D3D5EC5E0AE7BDC99BFB C358BA2AA274A4521E286CC6052A5C477696C5578D5608267CCB164694974BE93AE7E35F389F2B AC6B7980E61C29B1DD2D15B42195E795B00D2B89E6C4BEC4379413B11B939A1528C56006ECC994 7E4F14E3D60F7400FEE32D77798FF6383B3319C6F92E494BF73A90083F986CE5F2105C0E801027 57AFBBFFAF368A20EBBCC6516B79682D8B70A23D8DF3A2BBE4EE081D4ADF70847F95DDAEC10B35 13B069B9A6E50FDE25E3458050F568625F680D3DAB2FCD3B7007109358EF6428756F742C90118F E443EFD7E6D879CD082F73B0B95E230C06C67DA5CC8DB4792EB274FD596DCE8C966F84B54FCB14 8B57141947461BCC69A012B50DE3667F6DD9F0FC7706525BF5EABB07164BB07B9C973B5D31D0A2 2CC99E37697A6D14B6F4EE4745329EAC6A5DE7BCEF1B10DEEB46DA4AE14BB82CBABC31040987E1 74EA49EE6F543DBDA0063B6C1042EB379F610DB5C0D4263CFC08A9C5604B7FE2345E775EFF6BC3 5C581500BCFFD98E23665B2115CFE33A184BBE1DB4EF955F409074512F61A37827DB751757E284 A23C89932BA251ECCEE545B6DDC98246970B17C12FC7F9237E6D00E8187F7F45E048307688EE64 2FA6CABEA56C1D8C1FB31E0B0B95D7DAFC1BE2E90F933A44AF03E94BA2DCE76D358C2D7A2216C5 E95788A6BDC9350135621D59F52FC74BC96D94F93E6E63123B4F56326413974495E822DE96FC05 315EFDDFEB919FB2A36BFD8580D6A21D11515EC7835082359F3D0B2F79901FD6CC2AC41E2D7B9C 412A49C9D7B8FD6EFA11517821643349EE9FDD5A6F4D55F440CB7284726C6DD45E84049F8931CD 570388CDD6DD5F7AA0323533EEA3DA70FF0AA8BC42F3B129D0AFEDFD840FBAF2CBC35FF45B8656 BDDAC912ADA0A3C2EE447684AD4A0DADF205A419E583D57D352B30356D611E5E8B67538E2AB612 787177B8C8CAE9A3F63E58913E026E2BDBCD9CDF272AB9B181BE3CD650AFAF3FB9D6E07D32F915 4852862C3F7DB6748FC834C868619A4E7823733CA044DBE48F642944A087FAC70432D01392A52A 3FA0D1C54EBA4662AC8DE38827B17CF644C2987ED7E57D436E4A88B29A1C91F454A4637CA5424D 11B82D1137D58867A9BA363CA0E07C005DFEB038136D4FDFD5AF85F48E58E50D2AAEDC886A4B22 CE2DBFBFD24F4A05A3A9FCA87A95A871BF8D6237C8C63E618FA4DBC9E15ABB677EB7F1706B1C9B 125D4F5E39A168A989FC53D34F45C24A52292627E11F64A7BE21E5A61D4D8F8C9F7DC3B0E139FA 1E7EACB8BE224E679A29DD3B44FB9B29220EDEE3FF41E88D15C914E9E2EA6FBD1D409753D69FB3 ABF266FA7991E82B74C7C73BA7DEA82B0A0CFBD6291B4DFFA1D68306D24B50906A3EE87A0C3A17 3ED5A1F983138E7BD4381E1B21AEC00F72873F4EA6C622118F37619F6A451DBC52D2BA704DA804 17298BB1CD70A5FE38163F83ED96C2D5EC1CF2DC8CFDC9C1A8C2EC735ABBC1851C1A3270714B88 ED8E2FB5A0469A18EB27C0B191169E37D71D62D6FE06E23B18B4DFC93F8E220DFEC3B57F34657B 0BCEB41F10C0DECED95960DD664C499BC607614D97C60CD7794807F2D509B6589EE4241E4349C9 33A94C3F1E58FC40D320CFC31153BCB12F7CAE903D829E8B2300F41DE6D21B5BCED26673042B60 3403B1918E2A57662FA77A21D16EAB58C3C81243EBC05D6922C843EAADC9DA99B83AE09FA329F6 A6F0B5BA44AB4C1FE88B63BFA4D629EE411CB1EF26ABAA16264204637182774F1AB200C7E20057 17E5168F766E790C248C4A38B93F5F9B5C07E612D72077C36688A597DAE740D04171E33FF960E4 4C1E795C1C813E39BE2C0365341D1EC946BD30DC8BCBED7F9B4AFED3283B263155414CAF138365 2C1935E75541A553121B7FEE8293ACCAC906EBABB343B875E4774387FD8DE4557830B2A8CFA3C8 4B734F4AD5094754B96AB12E977DDC29F8E43697F737E52A6D9DD9A2D8840906B4ABE9C246F684 10C38B404FA6251A2E8A31E2126D11929B73ABBC01ACE04A84FF25A8F7F1AE3A9C8FC04C2FF867 5A41EB0453373722415563EC07A9DF738F7E8E9423DB8A09DC6714472982ED98165984C99F885C 9E9941F2A64D10BF1936C749019845FE5C5DEDF1C057837AE0C6BEE3072C0ECC044B5A33D4AEF5 3506438F750804B696AAD17897036057E77A0BD7E02F2918CE13A48FED56C55FA447B0F32F47C5 2AA0F53F03F6334E6C484AF42F265EAD25088232BC109B4AA86A475BC11FB22FEE50F92FB4C4B5 01DBBE211228D5C14ABA48B56E59A34C813016D43817AF1B707D09BBCA2B20F3B3C90058EF7E56 DDD4004F8754EBF0A16DBA018F8195FFBFD5668D4D21E7B6AF279A08A17D081811D2C34DA41E91 3399F6F3B4BE23879972BBA56C65F6612606DD000A6C857F8F283E6008281E5D18828EBC6BCA53 29977E4C792E468DEDA9BC087DD8B4FCC6D9279BCC069B5B7544585FB305EA3516268FFE6A3F91 CB25909A61EF71B0016EF040365D193CCA29409EAD1AF569DC290514A10980B94D6E8C609728B4 A35E97299E3DD1EC28764A71AEDD26C6D76F5276139EF13F052403F529713702E5B1089BAA4390 78F4D5B1B2FA80FE3CB11B14BC466434BA54F839B8A9C887B769FB59463D0D50DAF8C71FA0A9F4 0E73AF18FB6C7312FD51D0EB70027ED4A546232410E7D29A156A2291E29F6137FB42525BEFC6DB 3049AFAF2357A8ED9CED95CF7E33FE3845883E35632507F3BEE56533E42DF08FA0183CDCCE22CA 7E06D568D08D161560D106E22E9C9576ABE08ECA90A62510C2811D7CC28730D2BE9A1642052647 394F4CD2A4A93ACC984C954F0E8C57670C08CF0D21D46E08925ACE4665D9D724EDC75EE0392322 E9381632D8C287BCEF09E84D42E3BC345DEB24C2AD0C68FF094E07D32685866270DC457391BF08 15A73D64540C28A7BC178F9A8EEBFF4C4478924B72FE21D51ACE32EF43C0D3628AE353B74FC36A 7267FC679DCB875BDFC77821233B30F41A6E1EFDBCAEE3B4319BBE29D253624E48201DD2EA2498 34F67D2F111BF268942F6842939365C8E2BC3330F0243CD1AC7C5B62B7F0A2FBFCD0965AA10627 73634020A2C7C364CDC14EA24B500CBF4A8C79B01D6DF55DB738CBE3B978111D65DB99A78CD0AE 43619F2E28BD444DEB85A7B585B19C594940C45870E21D4B1B110028A4F3A60C951A0884D57E28 D5E26E0E928619000D5CFF442D019097C45DB01BE693F6528A00120A14845923BCB81F27BBEEBC 15A9FF9124371E485BF4AA8B51B2DA49DE8C2E5F4F1D909B2731B2B14B287D921949115891AFDC 2E9424E11D6A6E01800002B41B60F7AF908FFA016E775C82582A4C15F47F941ABA8889891F9441 F2C850A29185D4B2B68CCF46C38ADFBF046CB7BCF9B610379E95CD8D2F68ACB47107225ACDC6B1 2DD0A72F291E27199399F916370B1F7D6F4EC7D0109EEABE3191393C7D6446F86F10EEAD7F9D79 B5AB0C053768EDBE0E0F211F306507510E589686D29D226E55D9F07696A144BB4A6400647A8743 ED136D3C5DA6B183D0AF2B565D9D9C345EAE5B63BABA6867BED519CFD46CE594AF18AB49DA423F 0C781EAC2BFCA83F4B11B431C1DFF69E12287098A487BA099786DE0906EB2806278912B958D9D0 CC168D6246251F550445413478B8A460A24FA8D80A0924253985753DA56A30920BB237E4521C2A 78B4E79A256EB66A4B2061F4B71B421D85223FCC8DB4FED0C3A4C4918FDEDC558C57850A62917A 0E57EA5C771D64A137E17D12F1C5EC08FDB94D1232B090127259DF02581C2584754EEA872D88EE 7E583D13C54D278DCB5D6AAC44F68E76186133A3EAC6AC3D22FFDE29D0EE251495A96DD973AA89 867C6BF4A1B71B0956F32CA07D796A19A2B64CAEAC3B04AEE03E943B6FE66EE9840DDC086E8C80 A0849F14992530B74EE8C58CA3F4E765A7A097D98D45DC90C48A3F6262E9999BC34EBF07D5DBE8 7185B7CC1BE34DB8D09856E84A5B9B30C01CAD5E72034433045BBC57DE1DB1186BA78C08B6B224 07FA803CFFF1CAB082856810D5639AF9E8653470B3FC95E1CF8FD80DBBB597FEA6A4E3CF584AFB 4A88D02C1EA61B65FB0CC7A96EF09AD692D035EEF27EB3BF2967364A42DF2D7565C61400B0E338 168B81E69C07FCD2CE5B20526A707F36786C0C6D53B7E4567D41DF6435B4DCF13256B7E802441E 4C86A0A329EA7293B1A5FA8D532FD0F529A2CA7CBF0F667C784826A1891E8FB93564158B14EB52 7AFD02156785CB4089DCAA8056EC101F85FCA80333A89AD17EB94C100BDD0552006139C9496EDD FFE06E4D10C1258BC6912C5889D3D9108622BE978F52E855729C691DAFCB358169154A78659CEE C855C995B334280BF279955835BD13DF6AD0066702C7B2A7804A223947A5F8528F0E2A962F76FF 2B41655FCEFD02F3F6F8D848D60B65399746806A9A4E671F62FD3A46A8766E6F94422B84E9E3CC 3F1ECFF2C86FD88EAB7C5665743F5F7E26F34864C701B57625A79CDCD1BAA2A43F482FAE42F9B9 4BDBAA91ADCE7780AD209D2C19994574B9BBB132169B488E6BA22ED05C971D2CC5A9A0262844B2 1698BA297412019CD7F6C796944202C89B7D7B188DCEB11C91F90F0A338F62F636B759924BD999 B488C61DDAECC4B68E0104D51C9B8E38354AAA61EBB5B53A10F5798C3E755662C2F92523CE4710 14B322D56181A39DB9073EF5CF6C99028C66A48DCD259DA4A9CA17375AC33C1AA56235BF1A57E7 B3872799CCF1AE0534C5EC3AAA96128DAC5592C6A3AEF6AC4EC77F1CBFE1F7CBEAED6935913164 C7CBAAE272A953ECFD2F9B95E63968190066A66DE5F87CDBB126AB5B806DB3E8F0665952D051A3 DF91F4BBC261BAB836F921DFB0E6132283C40B9BE25DBA4DB5E9561658D735F4E7C635BA312C55 A499A10352BAEA349607623649CBBD0AEEF6DFD9F436CA20A9A887A13C8B1E40064BC2B5E8F788 887C4D1B853C40D74E4E759D417421FFFF7B2ABFF74E70FF8446E268C784BE7BF93CF20D3B085B B4136068A30E1471895FD2345E05BB57D5C32F1EE6C3A288D1BFECA8276D35139876240E36DAA2 99C18AB7A45DEEBC470F8DAFCE5884FA632F11845C1B28A3B39D820CD09B24ABE6BDF342A90D1B E453764A959A0766C1F1B6F72579977F6BAF22C2620C22D16E52C78220AED5E5B0F977E69BB95C A44F67FCFBA74F292773BBF4590773FAFC9632855223B640F8B5F3B991685215F92F1751EBA738 5C09B7CAA12A617A4BA5497747AF13918DDD1AD89085AA3510443E8CD9B799F325AE43863E7F02 CBEEC80A79A785DA41FAD2572E57A19F9A8DDBD1A12004F41158077B0B9D67E9CC4F9F10C29502 50C74CEDA126664FC366E6C8E5D6C8DA0E935D68DAC7BEFFB648FC6215145ABA587DCC95F2A0BC 5E187C70FB879E6F75FEFB9FF1A09D4BE80EB65AF18BD7CF9ECA28F44E49BE391D4A95633B1329 06A003D3879D1DA13717502851178B791137E3B8D7954BFB34E55B27FB430027D6A836C5773184 C9384BC708991D81665F7D94803EE28BA76CD43DA908B279C772A4249E88DFC85A10849607DF1B CA4D481614518C59017B1079ABDD1FF4A5FDAF8053A6225CED3FBE6F61A3404C797A61DD6845B4 261B7BADCD7FBA647562514F72C0B2EF4077DA86BA5A71E192B2F4E7D9CDFDC1BC990F4A295CED BE13590B98608C1B1A5F8E2A1690A4153B9304F5A32C764E0B05BA8CFE4907E39E33D69C4C424E 6BE32F2C298286EC2C7EE5D6C1B825DE78BA87F2E4FD59985FEFA23933832A4E61A21617B519B2 9360D57CCC21A685DD415048A06C2C8F34A3C98498CF74CDEFD3E5A595140F52F02B47A34202E9 2C07EF8E790186E56920F5967BFDE5DD6E2462DDCE6ADB38FCC059E189F8DA70A8687940CF9D80 98FFAD9D7929487A9191C250ECFF0A90012E0FE9F902F78A2C146ED6E5420C00DD89F7415F2573 3B5146D271A89598EEA4005DB32FD27DFA0E293423E4D433DD78A31910988D75F2726B3B8A7719 EBD40A889AB7E38216F1301D6FB53363240E1A07C2ADE47B26D4B6B438FA69786A582C72855A76 77E6C51555F39F3EFB53C79905BCDB3CD88D3A5801F971BC8809BF73D384B53C1E03D65CC34039 2A7A564270526CBD6F9FBA7871BDDE6D9BE23C38D5E53B51CFE4EF588E519148ECA0649AAC1E1A 2606EFFB8EC97C9E64D46E9BB5DAE9BB73CFA6A9CCA578DB26ACEEB662D020F9D2F163B877AE89 746A4B63040082385DF1C5BEC77350F9F5EA41F5941C90EAB5700820C0C29AB8371180F30BF009 5D7CEF5446D549D0931961B246DA8F1C3535F8967D64FD070B625904D7D7DD6E31B9E410CF3D5B DBB7B6D6473771B85F8E2924CA2F4D8DDFB2DB3D3E4CD46FC27C65F7058E8F908DAFA540BF2726 A5A1A66DE298D6EB770FDD4C2EB07F3C81F190712C2C5253379D518A931097A96866C1D73AF6D3 587202857D0A83D2A526D281B42AD8A29E5084228C527AAC631E85E9FBE26AB60F14D94FEF2E3B 9A24EFF6DB66998C5E2D36966A11AF147CD293723A5F2F34625F6AC2C4FB51D0F851AA5B4B54CA E1C8002ECE653890BBC684E4D4EF528BF815BA9B3DAC3A6EF34EE74BCEBD75F35F370363879C6A F67E849750D4953A880081DA1B64582E8D790C288B65DC1B69BBCB0630C77ABFDE5A40E0630D90 F542F09AAAAFD8BFC57BCB9BBED422602DE45CB377C2E634B47AA83CFAAA35E3C869C0819E6E0E 1CA918941B15F66E9552672110FACBB538E8FB8A7CE8AEB2FF61EA94E098B89062FE76EF53C6E8 2CCDA0E8A19BCA2B33F4671BD38C0DE622522CE84ACC4114473F10554F8B13AF6E50A8F7443EFD AFEF23430F4C2AFC9188ED069E25647C5D89D657E5C570A27A4EE5981E1D9D317CC90F5B25695E 9E1B914773FD447A91E76E5E87E6613127CA54E8AFA17052094F6467438B369C8549E5A0A59B04 D32B5A0B02FAB315F25CD4C7E16FCFF78544D88D983EF7C49AE1DDD72275759ADAFF6F206B563A 5912AA256CFCB35CE30CAFCFA481301F6A25F673A8B90E9795B2981601BA88400DD247AF468011 8C698A366B875A8631AF3A5B4CEA30F1B98870C096B0285AD22D2AE0C3E7C2600BBE9DB96A9A40 96BCB3275481F63EC41789444E088A98C3564F22C7CC1D5D343EE6E3494E46C99B1546AD0FC7A6 561C239B5D233450A80A13F4DB163FED87BFD98FAEBA9178CFABD4B5828EE864403949429940E9 BF97455B4B10F6FD8720930BE10E639F7173B460F56701B5D4AC799A794C9CA075D34829B98461 0FA438749B33EB9FEC2BBC2A2D354DCAED8F46CDB103EF0F64670EB7FE92FFFD4734BCC9F5B68E CBCB0BFF982FC7558774F9814B00802B4147A50F96E52FD1E107E1BBC7CD878D9BB194A3280DE8 0D3BEF8FD0CE0FBEE8919B8E6A9C8A45FA2DD71197AB8F15E122B6D96347181D1363A190CAC8FD 84EDEBE0752BD3EB0312C7EC7864E68CD0962B3AC5B919CA24A3F3B75729AC6578254974D749E0 9E460263EFF0F666129514DA59329972C02FBC41C2965D3F2C7AD1B834D210EAAB5FE5B50DF9C6 E16A3DD52EB2A3E703364958B977060CCEF91334232C9E71E27C03A1DE128CFB721881902A1C27 5FF14F0FD65AEA05A3A58241E874E6222596AB117144C5255EA57322E49F07A7DE465C39DF690A 6A9836B10E035928E05AD103954B6BAFCEC520D364A7E4FFA27EDB5299F47ADD3009FF45463D38 8A3C8571B21DC64DD8CF7028BDFEB4F66D105BACD33DB5E8A00363B47B9D348AA1611C059205EA 3B5897658160F069213875205D4979EA1A1F93F196A322B6ACFA8545EBA221B363A4F6C32C5FC5 FCB4E4DB0E2D103AAE01AC84FF8B1BF81D05CEDCA5A356981AED6A5F4A5978ED737CEE2B686275 2612B63BB055641ADE4F9DFCE2BE94F9B593BA495A1351626702E648B62E781885ED4770A45940 FB25E5C4DCF2CA34BCE72693C063D1F130D728D7D04729E8005CB872D264AB8EE6D125962DD6BD 27C0BD80247AE1DF710BFA28C8A5E32CD34E45D60AF37EACBF49682A1A76B15ED787E1E6371B5D D56DB046DC21B5DD9463996A4D805135A4971B8C187AAD32C422087D8FB8B46B5B472BDAA9AAE6 85C6C08431BE762313E443A37812D19F535AA285DBA7041997EA73498D5630D24F727335289DAC BDAB419E8B044E45D08B45B24134B5BAC9CF14D48DE6AB4705607E8B7ACFA9772C1F4E86A35383 FC11C4AA84A7C734915A2A5EE0C630268C6DC794DD6164C9D28C33E6208266D51ECD5FAC58C455 ABE4DD2E28AE428BBA827C18F347127E07E9E14BDF6FF4555E4E6C79697073F5D01927422FB534 7E854223D6932003F6F7F2B6BE4FBBAA65F2AF984012ADBDFE1DD4AEA80E3CD859BBF018084B8C 0E6D3E4B81B9F2023F818BFCAB27AB55D3930F03EDDF80D2274FB6BDCBD888ABEE7B9C3AACA6A7 70FEB66CF346D7545537531AC4FA6DE2AE0B5F0751CB10EDCC047527117F0974A8E0E48413155F B8E15D487942B6AEB71989CD74C88AC77809E1415C14A5BD4776A2593692BAFB9D3F8B398D9C0E 1DF346BB9A75915575B2ED1F1EAE8BA4DE510ED7F5E795314D5E5FEA572DDE48FC742F6318CD26 4DEF0C83C92032465C5209ACC826D2CC9507097A18679C44329E25C87D98AC7A007B4795FA3F14 E93993E927358E2E5142E7FB9CB2E62C0AA0C494768014DC0FCF8BFA1B299CB788B74A660CC404 F661DCF070C900E4E418C0ECEF6BB7A7572C2A632A9FB4F18C963FAD73B5A0C863ACF3203489D1 EDE5AFF38D67FEDE75F17AFE06F9130700BD092A55129DA2CED26CF10C5C088FCF82B192AF54FB BE884D701A15D71F21099303F9204D0CEE6CE1CD4491FB5B0285EC589C17079AA6599ED30377F6 7538636C92BD6D49B53C1671DDA036FB4A9251BDDDF41383F818F332AED33E010C642605051FB6 5F1E68DDB634644026B08ECE7608AF5AD2F648E32B6DC1ED202F02E12B31E008790FF62B097F9C C871A36A23737F8DB0EACCC75740CEDD89EBF1D1619BC558D35FC49FACF0C4696F577674879B35 DA2342F894FBC85F7EE7F4796B680D12ECD8E344D5FBA7F5E56FE4D5C138309CABC4871D81134E C07D9825556F78F74C9239BAC7365767761577FDF31609C5C884CD95571410856CB2A87CE42BD8 9F92B8AFADFEB5BA618BA10396AC6B31A4E87C2B89B521FA100D8622F39C80190749C5E9C26F9D 1040F6B90D2D380BED092EEA62D6BBD648B1021719799FCF210C5EF3BAE4D44C4D798D6529238B 5BA06D3C9F9AE5367CBB81993C19F9286E690DE1345FFDDAFF9FE36E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsd %!PS-AdobeFont-1.1: LucidaSans-Demi 1.001 %%CreationDate: 1993 Aug 11 21:10:03 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1992 Bigelow & Holmes Inc. All rights reserved. ) readonly def /Notice ((c) 1992 by Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Sans Demibold) readonly def /FamilyName (LucidaSans) readonly def /Weight (Demibold) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSans-Demi def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 54 /Aditi put dup 39 /Alessio put dup 41 /Ali put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 89 /Cyrus put dup 189 /Heinz put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 32 /Jeff put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 88 /Kettleson put dup 90 /Kieran put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 121 /Sebastian put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 45 /Will put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put readonly def /FontBBox{-309 -205 1151 967}readonly def %/UniqueID 5029006 def currentdict end currentfile eexec AE40F8585C2492B57FC8C19373E315912C02C4E404DE7D857CFC574863562CE335405BDCD8F11F 96FF6E8F1C7B7081B95AEE4E19EF19E210EB377985E3A9C4049662C57E12D3250AA62F97535698 C97032B09BB86FAED093CD2338831E8859F00CB0C108EB8E6EF582C1A64E00289B62C4DD3C7ABE 9D68E37629997DAA1BD0F494A609A153E01C0FC558EC2510717C5F3C0D1704E13894839A500B55 234B67E33C3EE5A6E7E905C23EECF0D7320E431F93A893DD533D15A7D941B043EA7698B0BAAC30 D437917A0AB35CB6E43354D38151D2BCAB7D2B5C7EB260C888CD713A2960FB2E510299FADCF020 C4A535A0791F9B9DA4A3D25C989EB20DD198AAF09029DE3109374D40071EB6255A9B872322B00C EE340A09F572634C77960BD50BFCC684BA77A4D15CEB51519C9728E8A3D90555B3EAF8C342A020 6282A97EDAA25BB74F1AE6F862477A7AEAF1A2743843460B3EA6653A0E7348D33FEEDBDED3D45D 85CF2AA51168B0647C1DE8B3C9A78C2EA43726659F3E8EDBC6A899F644DC2932A855CF3F64B115 B46D556E5D9985D389F7F250B017F690E2D057D6C651FD591D0186F44E4E72137572BB6C02B816 DD19473CAF196D22DD8C2CDC3EAB84CAA908B1895059B7CF29D716DE195A6561EDE1D69FBB65D7 CC82A9A4661DF15F693EE6E383D7B8204B693A7B0660686A66F634FB881D0DCB0309DCC421EFC2 F0AEACC7EBDC0D36B4B23BE86EC1BF92CA08E7F7FE75A9573149F4DF5B0FF2E3F1B7152EE18AA4 4C79B6B5B8ADF21B9D463241D00B8D0B1E4C53E374EAECD2370C762B7B6BEFF36ADA6C616B9395 16561AB36577ED5709D2AB556D6828CFE3312375F8352709005A1AB5889D6EE142AFA34C135FF6 A16327F64BA637F66BBEA267A0CF74E93C5FA0BC0025041987825AFB1AE5BBA228C40BC35EAE0B 620B9E90510DBD9762195207113830727F293787D784CC8B3096AAE08DAA086D3F2D02742EACB3 7D210FD447B489559EF0641DAD182D275B4CFA7311FA695AFBC9B689CBE20DEC441EBD2D6CA829 F3C9D7A5F0BD06082A0348E70A97A463340BFE7B8A183D6E01735C49361731501A6BE18C334DED 5FDD2E20E0DC11010983CA608F9A6AF1E2C5887707CD4E1EB02F38BDE030DD8E0DB7D9B39470D9 993CB97420EED3C2238E2D9C5558794D1EA89D7DD24C8E426BA238743695FA0908AFB11012C071 2ECFD83A269452B1DBE37E142A6A45E05E4D3FBFEDA1B8D3B3A8D165F24B8ECC37EAF5F56DAAF2 2FB1E178D15C742CB146B41265017FD85A6EB653C0F69DE9EE0D5C488D1E9FCD5516F6B8721DCB DF10E9A94F678124D6668A291B25A3E898923040749ED3458B9DDD204B196470F18DB90B3B0B0B 62F4979942FAA9F1FC00D98E345560CEA1D8C89CF7BC141ED12696AB78BC44B2483E3B5FDD8F8A 257B81175F5ECADB194647FD147826560D21CC2C1E619079C5E03D47E85014CE98E7AA57F32B97 0F7211D7FA44C26FC12A0BD6F12604B8F3EEBD1DCB0E8959857A5EB5FBAEF277ECD1AC6B564658 A547C9306B51C96E76D46D4878C5B0CA4ED3EA9800F9797A4B5D18D91244C74DAC07C659F3656D 2C2D9B3CC8B2F6FAFA22E74782D61492462936DCABA1363C51EBF7EEE92BA72A7A8E27C733D488 C9363C086AAA51C07577851640AA5232FD80E70934CEF2CE74F5158DA22C7411989672133BEE50 558A852537938BED9A34115416DB0E62A0CF53C5857C7280605EDB2DFAFE3B15A82F64A2C541BF 83903E3381468B8EB372547B548AE62E16131D0E4ACBF1575E3F609835D9DF46FED02D58C0C3E1 804DA0DFB55F6335B910691A3F5E3709B83F3B9FA35771DA4266BD8ABA9FE7F42F5A877D6A4457 BFC547DB8988CA6E77E04FF7845E90E7B72CCADE8A5A14E594E27BBB993E4F73FF91CFE0306C23 A8E6B352A0DFFCBFF83E4D9E6F7C0F05EC7EEE1DA737E4E1B5B70243083FF2EAE5F5F88AE7F040 E7D8CF58D7AD5A2B25B626B4B5525377CA40EA542236128AA40E592421D0D871A37C34FB45DBD6 A45451B15298530EA0E1DC851C212BA010685A92B1F805547CC57D62DD2D7CD4156C420D073AEB CF0CDBFECAA3AFFCA3F1B1B4F817DE41535B77504E891DF0CB42AEE39CA3E37E1B5F787D467CB7 306304950015AA42A53A340AD1D7CD32F2C0D2A7EA8A7297BD0FAB1B2FD027D0FCEF35DC8A32BC DEDCA3F3702008ABC82389A0F12F70859E5F4126A88CA4FAC548C2515A46A3FCFC3E958575CCF2 30858E0465CF6D43D41973057077BF986E4DCB3078CC14096CE6279C919082DC237A9610589B29 E9DC232CA680CC17DB5C545BE9418CBF16AE837E02681BFC873CF630D9044524A9F4373DF78A7E EC5881CECB664A92123639D62758235DF94C854A740A4D38859C9386E1431C5152331D71AE0812 CB23884FAEFD580C53552DB1D51BE03559E7129A8642AA14132AED38CC4357259257698DD96624 76589CD1AF7D72A53A8BA78A6E2737AADE9D3D880140C3907D1C20F6819A0F6465686B6D30A4F5 04E0488F5C8CE701D2096B45BF447743BB1D981E52C65BF78CB8F4D4BB5E1E4B0E3F48CFB19D29 9A4210F36A2FD8557AE2AA0477683FDAC64590A3E6ADEB3E3C24DEE4ED90D8A3EFBC3ADB61346B 6E167CD20F60FD028CF251CBEAF221F423505126973808297125312ADE2F0337C0079BA876BE4F 94D9F38EE5165BA3BF025C012EF13CC89451C63D943AA2D0C40083036AAE18197E87AEAA4E6A4C 678BD07DC68D87C2B18A5BF0B371789D216183C02DCAE89A8BF26C15B6A3ACB23F406D77AD9869 B02E9DA376F0F2299767CAB7DCD0D8330D96A43A1D70EEBD80362872616E3176C3B6CA44B5A8BC 9C0171B08FDCC575ED942B90C55470C69C3DDB7FC6CDBDCE4911418054C7C723F1CAC9646CACCD 23F594B344129B30F7569104989A986099901CB110CC535E57D6AA8CA80FE75C4A208A7B5E39F4 019D8D8A515C0AAF8AEC711A55C6C0DAA0F17C34C3066683AD4AA6A7D3EC57F20D32E15EDCA57D 61FCC7C8F8AD61260B574593CDDC128AD465C59A785983857898D437017360192FF44E19998358 6453672475B760A3F8F6003D3EFA6D22505EE7A12ACBDBEA47B63E5E3540968AEE5B6E7FA8774F B5410F44F9090E880D2B6E7E7E6A7D1D4D717B144D8A7E4DB66CDD5998BE26621B9F4D7C719223 B7A5AF8EB116AA03C6AF30FE61E32A62B4969B4429D0D101889F1BDE8EEF0662FC4D64C06665DB D474E811F87D31BF576271A7A3E52F7990BD79E96C3B4A936E2B1FBFFD2D31509CF7F5BC739F4B 7C0216B5AE0FD8AD25FCE86B33A4D22B2D616C96AE155DBDCD095A77AF84EDC4B7979B078C563F 8588CD016B3C08695D31C8EAF1D497C01A9737F6C1AA4626BA952175B6B898FA389E9493A8DF87 8D4A1C38C0CAEA89B225567AABA00DAA5B6F3E038C0F3198E8B5CCA6302646EB464F062D4BBC8F A8446418626319018C9C8CA08B1C42D0714AE74E49CB33A09CCFCF7A208D1B7212C255AE7701E4 E01D7E5EDACC772C8DE238B4DCE0C3D6A1C7D55FA9819A3570718A6732AD4746A71DACEF94E459 0269025736DB98D2F053305C27D30D50DBACD697EA875932778F2A544C9460A942DE2DDA61AAB2 109FF6363A5EE7E6E336394B882557F7E13F3D740ABFB291290AA5585922FDC27873A8B29525DB ECFE5A994BCC926A5A4B34C49210279F8763281A5D91816D974BC5F22847D68DCB911D265F7B02 FBAADB2E96FB0E46DBA70031B7D7A4BB32711C127FEB546F52C1FA36C7993D40EE93C0D4915B12 FEB19EA6972A3651FDD1DB039B1507600477877D43AF8F23B4D41284F50621DE3902A3BFE3BDAE B057C127605869A6FF573334D00AC079DECA898EC5E7C28CB76B23A617DCA022313B449518FA4E 3556B2335E4A45A8C61121293C3BAA23BE8ACFC53658B3617458168B3F5FDC321715AF886021E4 AF9187E2FF6CCC09AF7FDD019556DF58061AC74581BADCA856650460E5B45C9DCCE4B4CCD18DE6 5AE71D2B3D4F472FD56B46DE9126E08DA99B91A758BD9A94E28A8D951262F220111C3301972A7F 49CA8615AA7E7BA61171300F8E66A9BA949FAC666EAA23720CA825DE4D0F6A9ABFFF233187791C E57E3EFC5FDE95D277D13CA6112D5934D6E27C07B614971D3AD7FD74CF08B4CAC94F1DE512019B CF2400998F207B27277C42562C7EAADE4D090D8261C818DDDC65F65CC793E5A479F1E03E3942DE EEDBEA85B103FE2BC309C6B16D87804C85900E39F51E96276D9BC9F62825D42D1EAEE49694D61F AD59AD71A3EA6E53CB0C06E7916F0FA7A3BC0DA39E224ADF4F23EF2A15A4E0A56D9E38D4D7454E CDF3E8D010A6950975E1967E54F4C63018731DDCCF5F6DA12B4D2AD4A228473E49F6EC799D1967 B7F333ABB650B2B573F24B755BB71607D20FE142C5653358714EDEEB94D1862B435C877C80C1DF 7B02B148E8800CA3A1957207854011A7EA1AE2B831F2ACE4D56F9A2CECCAA4BDA65C6CF8CA936A 05FB76383900D5CF4CF85DA2F2D4E0E10C43B2FE280CC15C75349B170E87909E7113C3AE32E62B 584D7D350D1097EB7161C2DDA01D1CE66B622D041228C3A93F6FD48048ED070EAA88B5AE5751B1 9034DB79FBD58D16639930CDC92B93F439EF6E900FCEDE677D1CA321B93FEC8C22B6563A069710 54DBF7D60967EEF580203D0D4294A16C912B06252B97ADBBEA61CC04F9305A249E88B95ECD4AF7 1F6331BB6DDBB4608CA1548E270CB79FD972293B9EF8DB393898198E0ECAE14C92293506C39170 5CB3B0526B95E3BE6B8D3323D30D1A8933CC0C558C70D22736BEDDEFD0E5DE972D2BF42EE9E340 0F64CA97D4AF620384797F9E17BB831776A38A03E6C719917AAD65B3FE3850EAE611B9ABF47678 D750C0E55CDFCF90E7902A8AD5F0CFBA8125F9C35A49BF4332CC5BB1AF7E6601046E9DB0AFB3B0 F047A17F1E3346F5B3C4E4817A6E75753A3A66FF2F6226B57788DC7C5FE3352A6DE50E7E44723E B4268EB179EB916BCB57F3C7330323B554C5DF750B5B84563DB7248137E312AF17D2BFCFED3E7F 09323553E04E4049B05E4F8C546D198FCF51CAF6D3ED424FC973C3391D9B190E1ECAFF617B6E26 B1F2638FB32391EC52B27D0C353B9E7085B810276FA4728E699E50BB54274130A2B290F8B2E49F 5DCDF560B56DE2A43B41ECB94FD8F4238771D8B55712DD101FAB9A58E4319E58200776583C35D6 0EF2D7181170411BD45A5C2967D7F19487E8C2B17A5483E90316EE7F6ADE0C11AB7355BC66E021 2BCD832EE4AD4DDDC4AD33DB5358CA406876B077CD8D4CB77D1DDFEED860DA562615F51A54F596 C474DF3C2D253EEB1E9B85352211F2F627927893E9F59E70CD59B2163E35D0C72AEB17EE83CF1E F47FD6ACCAC3667E5E297DEE0E7F88644054E99E90DAFF89448641620EB4D165D629A9B59A0561 A144A1CDA31FA7C64E9003B9F66C880793D1A968FDA68159508B61D90C52DA56A5EFBB937D03EC C3F56B7C4E58CC65ABA31D9EFA6F49D3739ED898D2B2FD941180BAB89F6BEBFA09F2AAA3F543B8 447C15E372EC5683C81B987D492F6FEE10317F2C5FD884F813C4E281B5A7D120C24D1C7844CDAA 5CFA497E5760A150E0D22A548AAB3DDFD13429A2CE12526162A66C45B38824E56D4CD47B6FBBD3 3D66795ACC5DCCD1AB9BA0C3D6E2AC6A8E0D14DBB9F693CAC9F3FF65BCB714253A607DC2B25B15 1A7B07690DEB14C2829AE2D043812BDB6881EDBF658C21FBB5DAC05326BD8683B2506ACF3B637E 055E94B6141C24EA1BD6CD7437CB2713700EE829254EF783A926E2768B06545FE263663F79CA3F D4E9C750BA92F6CB2CC44B03D679750FD68524246F4C63CAA44F8C0976EC39F782131014D136FB 96E441F9DF8DA9BE84D7A59497AF90656B9F308BE1B909E51AFE8396CD977B2BD9D6B1D248C594 4B3F0DF9042614F333B91C3511DCBFBD6DEB5D5F323B7F021DB863F63DE2DC9A1774CB6598DF80 011AEBDEAC09EFA9E1644FA39165747C88C8EA6B4AF1897B34E805BE0F0F89FE2B9F71F4236058 E5FEA48B32CECA6C5C4DABD7A2EDE43E477CB3760628DCD2B64E03ECBD3D28D9A13445ACC39C3E 540D0185230D1E89750D1C3DFB6DE4DC9A258156FB559870A29F057121419228AC452A0907E683 74F58C6DAB6DFD46FD4B7B7417A3539F5F2DD26F8FDD1723B6C4030D86C352190716EB980791CF 2426A868B756255AC3CE719D37C81D8BEECC143B623880C1AC8530698369322B6309C672FAF6F6 0C8BB5E787447A61E79877B8405C652A5A71F85B222F724EB406A8E5451B8AB3448121430B4ED3 34299EBF820709C1519E35803396B3DC845302F716DECFF7B34E53E60EEB0C30AFD9862749DA7C 335475A5D432D4161BEEA5D72A3772B499539CB672E9ECB32CE919DB201E20EFF2555B71B569BF CF8B902564763EE7D559D5AA9870837679E4718BE751759A9BACCC51A9061196BE327510BA4865 ECD5B2A3593234E0E6D198DB19D2EA74A437BA555CD8FE70BA380B852858881E83A44FDC32FCEC 52BE9A0EE93ED500F8BD0C660D0894034FAA09B92BA8517CD3D294D16EA7F0D038BFF2B744FFE1 2817B83C7F0DE337F0527433A982B6B43569C18D8D882BC722603FD1A9BABDB464230FA2B0C9E9 13A47D30EDF69AEB8D6737658718321A34A8D5CD33FDABDBE65A9E9DEDCA6F80ECF455DFC6A80E 28687F23D4ECD8D8FF396567EFA09929F748CE124D08360CE3637BCDD08D1A9D54EFA80EE56CA6 43360FEFA5E987845150CCDBC23E5EFE2E3E2F571C1CD5F838EB1884BC39387CF19A0B4CAB69F6 829987C0FB8634BF8F8424E649F9CFCD769E96A040B1CC46EBBA3B17886302C2C98D02ACF9ECC2 0D6495C1A80E2018B1267BDE4D82C9AEC7E284BB825E6E500F85E5554E9E55E7657947879BD719 81582946A1D6F0D70B878B5E280E49C23D3C5F176E43E1878F82210FD465F347B37041FA8FC749 20A45B3D73E71EF44F50CECFA9590BA94CE6D34CCD4FC878DCBCAF0CF713F4AF5F54FBFF508C42 DC97117CC92442E180E4B2307A2FF364E89BC538501A2E3526C77EC08E8B211DDF42042633C978 8EDD3A24389AA1690ED0715F531173163A95E36E87554924FCE4879941C50214A485A26C04960D FBD7A03B9AFCE70866723375086C6DDCB249AE3EEA17CB1BCEA611FF44364DAE6371AC79652C50 0EDC774B75B790B204C9479F3CE3030F6288D1E2C2F9F083F990F217DD42AEB8A95933E7A318D7 CF6656D9C57DEBDEAFF6D532CF206F4BFBA0EC53913CE7D9E2BC72F5BECDC0CCB313131688D769 12FE09419536C188F34C840608A17BA22DC57A7DE9B758E05C3800A8BCA77F95C0842094377A16 B80DACDAD77A3B65651CDF7F7C4550F1214DC47D6E88C006AC5D5066C3AEB2012F2E0C39A055FB BF174FAAC6A9A28D2434E03874446E15DCE7ACE5D7BE7050390186125F0435D4024DF4B5C25B16 719B3240ECE2B00C53EF9091E1043313BC83FB1128F19DD592BDC748E1172069E61AE8A05B6FA2 73CD67F68AA8F783E90D042C630811A8A71C0E22A6142B17D6C2F443F27ACF59C6F4474014DCC7 FE9257ECA7B4C46470DAC7540C34A03B7FC1AA96D6B48179D28A0BFDDC35BBAF155BBB5DD8D40C 2F3CFA7719E0BC7832EED6A37702223D1466A8B4FAB31D2D91AFEA30194B9DC756EA0931A28D92 8B68C0E09F7940A1BFB8817CEBBB0A5A4E65CD9170014C9577F321AD444420BC7522D91672DD1E E7517AB30B7DFF7436C75999DBAB0F7B3A7D452173F9FC066EA136998AB8D3A46AF5CB99ADE3EF F0213AD487A7C50A07E25B5363F2C3E47B79961BC58B4FBC206F8C17D4897A26101714848ECF2C D7219D372F38188AE6657CA5A9D5140B832533226677A992CBD205BD8A7EEB8618B6D2DCE91AF1 8401EBF19DB900BCAB2C7146A0832A3AED3755B8906C9A0AC65CE2FE44E3DF2F68A75FD285A1DE 60FC073205DE3B4BA9ACB0E06C29D5818F55A9DD737F2069BAABC52FD9B3F386127B9DC32B24FE 9F39921778FFFC702300C1FC92E3809379FAD3189B34D98EC371F9FAD6763C81B424B0E8339934 9282C1204BA70499E24CE718B2010FC17458D8208492EE56F9DE924FD848705969B622BB0F2481 6BD0FF48BF235DD71BD6F61C38B6294AEE8676AFCD9B8564E36EA6A95C4876872B94C615DC0994 D522CEEC5B7CA9ECFE9DA4A70613537A1FFDDCB26A909A0C8512796F70FCE357472476F30C9D7C AA718917065C69D2EC1EA9620982EB4B869035E7183A71A910212F18BBCEB054B9BC7419E45ECF 2E0C600F865B44538AEA23950B5E4010BD45921CA12C0C1968C65EB900ECE26C5AF8D29D31346E A2CA571A9E40938D85D4483DD894907ACD68738986D864190CE11362E7C50346473639BF4BEF9B 81160FDEEA602FCE03FA4ED3FC5CEEBD50F3576CDCD4F21408A2D80E265D5D607CF00CF15388F2 C6EC9A1B47C77DCAE2E4F2F978508923FB4AF9CE6C8BD1941F66866465D9826879918CD49BBB89 9A0B12CDA6A069B9944666479515F2B7E39F94202D4B369FAA1887EF5BF5304E8C2B2BF291D6B1 4E656EEBD98A422438DC43124E73DED0C86F71F98AC1DEC79E65C71AE390A9D7BA0A2A5AE8EDD5 5D22DF7FEC889A8953ABC0B0BB9898FAC1CD7B25263F7AB9DE276B20203ED2F2F43E7D52E442EA 02EA9BD77721C48D819AF6A522481180B75C940780AEF72D451D556A9B6781C45369984390B393 A873A2E0ABAA5D91DF10A1A29E7AF13F74FC678716FAAD7523B721B2B9C0C46C358887D0A7F655 40E317B0F9B6359CB0C7FD951F28FD77D33160CF072D79559B31687A19AE294FE3CE1E9D30B083 F955672E43D601A8FED9C7FB8C735C681B612B327D3806794D061C3C95AF819B08515A2D60E536 D3DAB7BF64E37758CC9209777C62677547E065E20B74175EA87DD3836D107D867805AA0D7A913C E8201BF1BB8AA51657E08999788761B3C5747F40511D58798397D64512FFC2BE814C776B9EBB54 9E4F5A3CBE75D920B2BE77CC141D1D26ACDD762BAD54CA7C37EA9BB718059948E6DD2C404BA4F5 08AB7634D7F7CD84A3C6A1881026AF15EE46DCB249436A9EC02E96D88AB19180FC2D01742ED7F0 2D7684B698AD17273CFA4164688C5B411D9E43DCA5806223040AF23ED0534A1E9D922380EEA882 A5B861CADBE7637EFD6064E56107BD6237EBEEB8DA25B11BDF0A02569374B70F09818E9A8A0F6E F9267967EB87CFB403D57215869D265E58194178AD151C0F774C726A2619B08515D3FF9D9ECDF1 4A7A40F43A154D499086B62D82BA643A2742C2F9420D73D7137C20C5C9F9CBAB60278E6909F8C9 AD368E6CA36624FDDE2E1F9DC3A76681FDC202A09CCD9FA7904BD49F29C645AE4B4BDE9433D44A D304FA982F5BD914F42A77EE7C4338435F8312EBDE34BF5F8D805ED362C6A99440A641DDB01CB0 CAB5E911A0E5A2935F340AE81B91592BED1B4272CC03247B1F27AB2E9B23CF77D3DD021B907460 F8A877545C42AC468B68586F0066342AC40F497397DE037EC5F5C517146A72CFEFEC3675C88146 52AA1A648DD3194BE106291289E0A0170FE7C1F0616A12E78E8FE112B7B2F60A623F49836F3FC8 CFE47E820E9911C19AB297882D2311F41D76452CC9DD6F6F95B0520BA3EB394C15189F9DE9573B 85C09AF740EA834A5EEE27A0400F1E3A6B5F86D0C69F8FA26C7BDE10DABAAB8F7B3EB7071A72D0 A21D82F17485DA6AD12BE8668D39CE0B6A4BC7B59A9D8D6A47A15F62D2B41283E9F23C35D2865E 10BFB2603A607E5246775F67A41E2EEC5683A709D02C92F4D021E07649C4C60A5F0E98D44CD83E A34297942AEC4D397C4672E5ED5E1FB1CC51F3B6CC7E8FD0128D7935B05872A6B8D76F5154BB3F 17A4EB5BA0437DF785A63009C1D8084FAA7EB5145E5BDD31E9984DCC2ED1711A2FCA3725445AE8 C78BB1C692F2FCAD9556C68E7C9196541B9A4F2465D16B4205E345D096E8E5B172CDB1E784B228 0D22A28813998F653A4D47B5346C636D7C22CEBF2DBF433A8790FAE8989A18C674BDB566FFAA7A CCDF631AE4B1B2C876E45B911CF9F4B9D7BFCDD2684553B1CC0F3BEC3624E44F023BA223E83EF1 40D0E6D506E11ADB79C0DCDEED41894073B75A931D0DF6AA89078910D35E6F65B956AD74F939A4 B30DA755CC42918F3E6B748F066E891F0A158DDB4FFDEAACC6E71A9AE04DDBAF899F796A80F6DC 02703C64BC7E021BC292A9684305D59CEB84F579B0BDB215E4FE8399DD885C8337A6ED127AB50F E2B562EAFD20C841E7E5DD1DF6993F4E60B59C6FB2B8660ED942D360C5DC9D48A9ED8D9A08BB4B 8F7D51AA81D0F6B5C63E3633EB4A8DD8EE07E99ED5A455B6D5021D91C154AA57807357D477BF2D 626D54E365DED3AA67230CD8FE70C51E3EBBEF88FC014AD287EE77170EA9E47828271235BAA930 087CD8749F3528C7C60AF3EFA55DA68C6D3B166ECC7B0A88E4077EB2C93BC5894EF84D9BACB493 203015DA8CD9EF106CFD123E8057AEEA2454C9651D312E4F6CB7CD12BDC1DBB475A1DC725A21DB FB24F55AC85BA2F07531B23ECC411FB2B0DA6B7379F3BDED7DF2F412A016E9905865ABA4274EE3 1D932014FFD8836B8CD636568CF0BD2A7B7D4F51D716BCDC50D56936A297C0E7807674BCDA480A 1DD90412EDFEB4F18016E5A5EBEF885D3D33E2D925831343B0CDD184AD9D9779F0F50805894776 3DBFE9EED1AFE3FF0DE7D8691104B4155821FCEFF8D0BA9F35DE1C39B063394E2F76B0245555AD 78965B301411E1D93B5D7C2284848B3CA29776059D9AA4CD2AEE88CC0007376C6EDEADA2DD1CA3 F5293EE8E2C9B0F1A8F5EE9D009C63589CD0A7003B7911C254B780C8545203165601845624AA95 2519CB7F1A1CC004B84458A19C7EE68FB249930A268BA05F34C08FA72BA4E4E6919EE667DC762D F206E8BD03D6A1996887DE81640A2BCEA4052FCAECEA52900A9296A4A399F7ED0C3D7D3852A897 9F339D42D32911E6E119BCA337B7F09F2BC74BDE2B71113C439397481A8A5AB3EEE1EF9A2DD798 E9CA52E836034C536C07CD377259B9B72FE7FE68A1FCB8D4707B223AA693CCEED0AB7D97FDF90D 84DEE522697C071AE0EF306ACBC192AB9A9FA397E6CCB97F42FBA37818A844FA045AD2BCE7AD5F 0731590C7A26AB951EF94059198AEEDBDD869096FEDF9EA55D22C23EB6E4ABDD469B3155CB9451 04C51EA9717EC395B7BB64E2E4AF5D31AB85876028BC78E0CD3BDBDE214CE56F5687B3009DAB8B 0AC6D75B13752782F56C590AC4FAAEB6DA1462988BD69173190F7A486077BB49CBF5FFF612B0C9 57474F5401B8B1E8F240EC3F20808DCA2F9F2D810A07498297DA66D9AF329991DAC432BAB46C01 F1B17BF8DC6FFF54F40397026ED09977520A41BEB1411F9334E8CAA93E5CBEE598A88A01B25601 8E529F173153A67AACDE4A8296BFCC5B88E6E20B29D083889C18B4D38418B12F8F3514FC95130C 58A0891AAF8A9C4457603EC6FFD26F0E1B957E783D4F309F4B654980C22D29CB8646C104621282 BB301829676E5F3D07F090E172F9A74E9E36103D3E7FD4D7AF0F6AFABCB9A21250BD6E07A1AB03 66719B2AE6B8B98B6782AC722DCCD0DDE69FE9E39293130A206E9CFD64184A589C4893C03375B7 D7094CAA426EB2DA5FF79C2DE45F5893EE2AEA388A2AADBAE87FF70B629F304AB0D81D41F44352 1FC0BCB558119C9FECF5C9EA1A876A0A06610CCD279BCCF198AA606A2F4554880BB1BE38A91B55 48D503EE76A3ADA011EF1B31F25B3A6FFC1A6C6544431CD1E1DCC06789C88584FD1878D3F5F565 3B6FBB4B5B4795779F976252E9F3F09A482F9C8DF00B5EDAD6F0BDCB811E622A4FAC70FC0D6F6E 37625FC077D143C6AF7E76280B45F241C2FB62951447F84012AD8401C0BB7B794709B48BA3FEA5 D85AB7D9875320A13BE8934E8FBC8B353DCE93A16979FE3A97D0E9A8B5D1F7DF52C6C18F60AC87 C8B17DC80235023652ECA4275A901D9468AA7766128FA157DD051060A62CA5EE8235E79CD8D5D2 B651066E2D8481A717EC08FF985BCC2B4B5D4BAD6408B0557285903F26BB6698710CEF6102230D 042EEFD6069623A5003CCBB8B71F6FCA85A88347DD13459AEB84EB4802ED2ED98D02494CC9CEE7 FF5FF87319C591C72CBC3F43DC7DEE2BCD0E96DF6EE42949CAC9A7B7CFEAB55D3473DFC3724105 81D8C7CE893A1C374D933FC9CFDF462481D98FCA27085AFDCE8CF359E127DCC1EED7B558FC6980 813EFE260620D7A7BAD331651C09B2C7F5EA13A7D095368B1453C7E14E6F6F4C99CEA3F3F51256 77A448D040F2D496616C86D2F6774F2307163FF9C0AB8AC88B20A6023E60A2C8B63E1BCB6F59A4 2D24C107DEF5875E7EA1062646DAC43CCE029F56E91A49B0BC6873D1796DDF7A0117ECC41DD4DC 792B5B97077E2AB5492876A547074A73D404CBA4B5C0FA1938349B7C156FEA5952AF7DAB0002CF 84A92D63E38C0ECAF31FAA2B2A033A3D382C3A4416F554E4E00100D122B2D75AF0BE42C42C7B1B 4E515B81F4EE8D3F9C39796A63506223415C2A55FFA26EB9E28ED5EBCDC5D2E83A3B27DFC8B6BA 8DE74DAEC630AE7BB6DDB12A42C1F666A05EB18665EFC68FCE7DE3820485FE9159E35EB35E2932 62FCF5712BFFEDBC974E5990BAD0D64D820564F54324323B31ACF948B3A27F4AC397A958864268 5F86D44EA685BE3CBF1DC01C293397B8E3E457F619D8B6A85E75D838219CCBABADF23C0E4434A7 787DC52DB315BAE832819F2973F11C045A4662F51256BE3967C3231CF42AC7DD045786B27E377A A42DAA473A697EFE962CEBF368F10E0F3AC73EBDDBA259ED770D8E43F8B39175BCFACFD1E31DB3 88950902A66926774EFA8EDF9649BD8AAC64702EA9ACF5717B5C91B4C150EA2A98CD128235B6D2 645FED4EB709C91D4F71F2E3B6B971A378A7B3499773293D47B59AE87AA1F3220CCC3022066508 5965385DE8031B42CBB2A2A0FCB9A038AE2BB898991A476373CE559ADF3263F47D6C103112A5CC E3EDA9EEE4C24079F0EC6F88E9AD54D1629606C97F6EF26ED0225718AFAEAF1A21C712315C03C6 9B019D238C17AB4FDD0A52E840E28C6D83D6DBC7F04051CD5F8A61654B3037FDD8388C222A55EA 4A423F99635EBE452DB660388127204288A88BA9E08B6C31F92960CB9B7557CD754A3400D48F1F 33EB9C6E820BA19A66FAD15A086EEDCEC0386DDE30E8FD98B3A63EAD8AA52656EAEBF9D3995C08 083CB2901C8C04E8CDDFA28F89FA371822652E71531782D1388AE97BC059278DCB3DF5D175DB21 FC34D07B6D3DD38F44E6BA13133D6E2D54033C4A77F0A4B282069477761F5DE689F4EA7F734BB4 5C0C3AD0198A5C9F9AB087A38A0F47BB85CFCA1DA6E818ACB5B1D9B322EA1A67681427A2E92A5A 72E27208D406D2F24CD583EB914DB7615EA17B0F471DE94AB404502DA4CC394ECE88024B6AE998 CC7FF2D1383E183DD4562ED30BCC8BB6ECE442449BBD57E546AE5E6993E2993A9E0E49784366D2 6A0D3A301F81AD2413F564C4F36F7F8CB3F01E1BC0609F9B6CA4051E30485865768C9CDFFCBC7E 8E5A91904F43024638C4D70994F32D75845F9F865E9037491E7AA0877ACEDA00AED81E74122F94 BB270ADAB594F5055D2B856F9615F1EDF02AE54BEFF75D33F53589F82AA67139C454ECD8077C8F 53509A3151A7EF94E80BF03F881A0553D321B41CEF83350CE9B40F8CD187D37F9B0C0D7537D498 BBF7ECE55A8F58FBECCCD0A67EB9D86889EAC4E61CD90C40992344C0D79FD1C8ED6D7272B48406 81B99C5A06266FD81B0904D89F1CE6CD26D9844358263E5385CAD345FFD28000BD449B1391BEAF FEB2E5EE56A63637690F48105EE0102E398868DE9D2CB1246234605FB2A5165085370E4EF4481A DD0BC5214BAB5055AEF44E54A56E884F96CD9DEB53F44D2BB3D29839F3780655909B8F5968B491 83E5D0978A1D3EF4A15D97EA1D3F1B16FFCEAE52E18F34BA676F2D478A5CE9EF0EBFFA5E0E8DBA AF563359E5B0E1FA0A861DAF2F664F78B338999DE20CBA9DD87A91C7FD06E12F3FDDA8EA27F945 DEA14960910D04FDE66293A8BFDECBCA8F5D1267CCD28B5161C89CEAFCE617CE08496BB3DE963D 34AF77B9BF7533C46F910A673D6DBC905C11D166B26809AF418B3A8CC243E92F7680B1B02A56F3 355FB37EBD6F1CF721BB8B55199F04707C9947CF0747A124D6136C18091F700C1DAD3F30CADD8C AB54C79ACFDFD261A443C3221174F869DC157F61E198A69E6267C9B48E78E907CE5FE7FD4B53EB 9189094E0EC33829F7C27C6AE1CC732C3D191D522CDFAAD023A181FD7B5694F0A65FCC20F51570 95EA8DB3323E2DD26FC06CDCE01EB98A5ABCF0DF84F3A14DD67EDC748193627EB51C8F6692D45D C830F3EF7C823BE662184B79F6B523D75ABB3E83F0BD78369669A26728BE6B6709A835C3299A54 25D05DDCA7CB954F4B325CB2E5E6C28C50C59EB0163915521956EED1A2B2DB82B22F7A1B9E9CC9 F40044CED31C72E9E85B0244EAEE92EE90CBB3A8620A53F805E9A20A6A0FBD52DE2E75ADDBEB97 3C3A794EF204C634F464E0725FD33E8146D31A976D305EEFEEF70DACCA2BE227A1689BF53D61AB CA013B235A2E921FAE0BE489107B223E99209B7CAC5355A33F2F8C04996D075E18007DAA3C1319 EA66E669C4198838FAAC9903B074510749D671308C9BCE1D173D6C296AF100581E501106717F9C 59E3A29537A16D376D9BA8DA51C3FCAB70B0D0F61445AC05758F1B579DCF0B5CAC6738FC4C47E3 6F5A3A27AC9F19045BE6B3D5482E2D30962C3141E12AC96D59E6D43448F85D1999A39827C3DF8A 933571A6585DB257603471CE0C77950F8A7D3C25FD60888A26F6CD77281BFC5F4A72394ACCB7C6 A9894B6015226109D1B043004363DCB6CBE56449917861747F1828E6DB19F835E328524A69464B 60DE76F08CA1FEBA7DD75D78778CF64F0050E225DB6A44C785592459BF38CC075ED97583AF0E17 EC67B74D752E580533F98000A39CAA0A3DEEA46B89D864E22115A084F97B5B0D3A050AB3ADD338 080096BE5A156EA956947EA2B1BE6C357BB1901DE7FCDF02D78B647E1FEC144FF3C8A7711A894A 1E7D849A60E0860EBB256E15C5C995951308CF30F1A87E8D3E678421B7537199E27270B4755DB5 536CACC90C4772CE0CAAE1780BC54ABE0C3BF2627B64451DEEB875362F3B47E95577A80CEA03B3 C6284BD3623306A66907C6EE6F4E16617783DDFE3AB55448F80A97E8D5CE6B73493B8426DD163B 96978D8052FFCFF0B0CD91F1D366FFF67514F92F6B1FEE64C3C023EF905C2830BA7BB7CDDD8532 F18CD1BC5EEDD4E57FCF043625483C58AFFFE5EE5159F1707BA49760CF3D6900B2A6C9B64EED82 ADA8F0B96D7BD624A1AD4B3DF0118E86B98B46D72A0744FC895ED2248618E6A349C51A44A89C6C BEC27E525FEA388BF4A52D963AD520CF9A768B8E1BC6345EB434013BD9FCF6FC5A309CF7953DF4 E6A92DF3FBEF92FB1A4A7FC4AACA0B95F070E908AAAF4738227375A3FEA047E3B4823BA8FA26A1 F497936F94ACBF1920E2C18099F154F2D74E50A5FA623B2048920B7E0AF9446EED9C8D4B737AAD 85515672B6AF1543E5AF733C178FF90B89B6EB1E92162EAA240B158A78652680F3509F9C1BB21D EE46DD3B39A2D17029BC29E260AB570B29B02624F152F6D56DD4F2FE3DBB352A3CFC4AC0534F45 E31ABEB8C099BC8B7B829F6C7D2DA0C2B9D58E22A8A8BF73D9EB1CA278086FC1FAF212EFA755D2 96C938CB7EE5AA4E007EADC88E7205FA0874D44B769CA1E0D757968A39FCF4F553C14DCD9B34FC 5246D3595625943439F4F876FB6A52EBFA06056850F5C92D434FE017FB3D4B0E9022B2CD28C3EB 95F084EE99911CE955B5B93196BCBB65C2699A0C942A998F785A59B43C8F8DD87BBA6107854FDD 70B3763161AC79C7CFF4FA36EACDDABEA6F5CE84567AF95E389F9C2CE9E972B540391F167369AB CECA3C3D9967D41DDE6F455445D686B3B8223C6E8727BE334A73EFD62477DA3D89DE65F3EBF81C 4DACFC5CB89587AC9267B8670AAEC340FBD51971A3323B17978E110745B84C5E6FCD74E132BFE2 19BA1D812A645002FE8827DDEE54546099B47E82F3935006F0B44E174B675CAF24A8FA4CE10017 0F34E1914F3222DD851F0A874650A14866DD1EFEC6A2D97969F4E3DAB9D449AC50B5E4524BB5AB 96932237FA7896A5284F85E592B01D20C761D35BA83B4945F5608F30A77A84D918B6847516F96C F351874BF52EFFF38ACCE88174634AB0338A377E99BC3136A0600362EDFF0E1D42F8C5F984ADF4 AEA2463EC1B3DAE2A6CF86CCC2AA846C7EF31653605619C7D0573D27F914DBE344E5C11B697154 347E09F54C4108A1D71FA878E4B07D35FE056DFBA2D7B99C8F01134CEEAD849AAD3AF0CB60505D 519AFC82A4BF5B342575B774D88173F1BCF2D914026D3413FF187F9C8FCE3709CF0F7E9A793483 876A4FD3F0A29DD8DB7F470E88DFEC249A91BACCAA65AE26EFBC9CBD550A935741A5501021B9AE 064596C775BE5967FDFD3FC595EC5CEC2F185EDCF11492E76C8EB22CF5C91BB63E9AE2649D8A5B CC7A47943E40E3B473EB5E792919F03F09688B71ABC0B0E2CF64E1DD286236360F7EC828CECDE7 64CBEDB243828139AC4C72378B3EAE67D43CDCFB95DFE17DDEB6C2354FB8C52ADC0A666C40E2A0 4FBCD8C01936F04F1A983B68462205765CC6E782A2F459C040958CD16D8AACA06E1A7BF14BA6FF D570675A54E431B2D2CE78D008F082693123D18E1C3D27171DE5940F63C3FA5480E80B5727F684 EBC48DEF479E345D2C9003481AE5A7FE20A1EB0CB422FD2BA07A3208901CA8D782DA95F0A6DE2C CA3DE689C498A10CB8E5AF0A2203C5C147BC17BA14B4C59A34B9351321EFB281494423D0B784E1 622E2F3EE7591A23113B3B90D34D824549B3A0B513B8BFBAADA9E1C4879251BCA93E6C40A8731D 19B411F1FA3C3F3BCEB63F5B9B8E868D4F0B966AA867EB2D4C301FE6A1D35159B4B7BAF8227D6F F7A86BBD70178E4EF798799F4B43E296A889120BE0828EC211A38BF5A5AAC3C00494B0AEE6ADC1 B8FF56733A3FAF015E6BA38FA59DB63FB3C9BA355E5F2A555903E4A22F2D1F26AA89C21A623DC0 F0D8AD654C3FBC752FF21C16321F5027B4353F6C12FD340D272C2D4F30ECC9B58DC4A42F71B954 B2764E077E0CEF1FDEBA5A6A8FE14F3AF0122C0918DAF87B157BE507BBB50DA1F208534607D906 D45CA3444CE68FCCE04739262BA5B3B0DC0FAEADD86FC94FF14548C98592F91F89948A173B76B0 8D2F3F845DD251F09AFE656F69D115157309D537E4F663CAFFDA726A5C62DF8EDE1EEC7916F86E CEF600BA02901BC5A56086478A867024C58A4D8A631736FEA04F09C9DCB4B3EEF89A0C5767B3EB 8B0C2E5D08974638E79EB2CFDB509E0948BC42E1A9A29DDB09BD44BF28186C3C5AD4629D7B1396 610782E464BC4EC12B2C484F01250BCBBECCEE474F25DA98AC82583467B62D51689EE98AD2FCB1 AA13D44BC1CEE4CFEF34D37FB8789AF5BFA59D05D15449332B46347A7CD1F0791D48BD563BA6A0 876C8B00496E3947C0ECF78782945109BD9306030CBF511C2B4FC1E28868EED9E2039002C98F20 43828EBEC486919082BE71A7CA278361D0EB9DD7E21AE9CA80EFA147DCE160ACCD39924F45A821 D89721CEAC542ECD09E76ADD11FB1710804C63B1268FBC89CEFD28314D9D3AFC26FAA897B3B7E8 C882C4125D3DF9A67E2DE27A0245D4FD9075DE5D7FCBC8E48125D8BEC3972FFE5F8ADEFF1258C7 5506691E5DA81359C24A978EAE086E7E885D8151A515F15A475FDB038946F7D369644279C2186D ACD69FFD922EEB5397F5C3196548CE35D6E35C4DE6D95BE566665E4E0EE11EA43CFB9D0133B5E9 D2A6656AE1861C158AAA97C48DD426205842BBDFAA90DA4D5EB11EF29C24898D9FE9B29B2AB913 2A774418F0190C3D0FA29755168BFB149E0066DFD3BAD7FC405B28A27B2DFB2A356CF6F86ABFC2 18C7E164F6F0D6D4CBE011E77EE8A045A1D1134E115D730D944CF34248C1020E15955661DFB6A1 687CB54FAD1AD759B7EB209E6A78B4F3B4F049258E799B6FF7243B26B573D2B26AFCBC36324E2E 9AAF7206D3680EFE913A6E9F4CC8CC7FE5FDBE60D262D378A123D8BA928CDD6651999854F3ACF5 126C00179347DBDB34954378AE5A08A690A98413115809C95A6142A662DDB89BA25B6026064A6B A7D85963FB4D10C0BA1BCF3E73CD597D99C4CA47CEF4692A0EA5DC89C2A92DE5630EF15819840F 10FD394BA987AE798BE15A61AC464345E203B06A3ADD25E1607F9C750887F5E7ED7F2A12109914 542CD396392738C7B7A7DAF58A7823414D648CDA083CAF2133CBC0318CB11464411F85B8FC813B 4D07757D3989E1E5E063F2D8E07E50BCF85811766CD79210C6AAFAF085C74BFA3DA37B45386A6D C83DDCFE3DDBA6B3F999F91406D35374E60CF88F2920208C1D2A162CCA6B27984D905F3C271524 1FBA18949B6684E3433019D3C8B45E454C18485E54A74D196AAF9636E85D179E1B5F0544D09BE1 8855F32091CFE26A425F114C556B995935F821D811E0E5CCF779764DE6EC47256481B25EDCB409 E7A1FD2D72D6B5DD56EC9D4474CD5A9660972D366649D840986AACAA04765435F4EFA7C513A10B 1B67FBB112BBD10490B0BDCF5E5BD4F80787E43895D4EAFC807CF18103A4EE315EC4B71BBB6022 FEB88DE20D8C7E0244B95015DDD03CB93417A691CED38B37C27BD1C510EC50E2D82C5ABD32D24C 29C30888A2E889D0EFC93945681CA613478CBBB222810C4E4478915E598628BAD3A8E31402C1F3 4653671CAFFAA244053AB7174E8576085F90019E0DE486014A115F88DD9DB9B10E91F129DD5A6D 00AA208459CFC5A7A2BD1095DF24BE5DCBCDE96D79E90871084AE04C1DA8DC2459FA0E191FBFFD EA46B20240E40B6467A2455C72427B119BBB07C5725B823C112E734A09D07970748F0D0D969B75 1BAF2451D346FC2C56122EDDB88287B1042B9F24C933F541492D0683DE0B0325AAE667521F66A3 27C863F4AF7F4A937F7BEA60B5299FA5D170F9413A2E6EF5EF70484C0D861EE719126A942E0262 52279876430581F0AF1841719DA6E4D8C3B932837FBDAA3FE08C18E1C89AF300E3AD7DF34FB439 9BE9A757C830E18699450B98B49EED738C09084CA5E06DEF86BC58359DD0D203FFB11EFEB043E3 7B184DA9B71C1AB17A9709FFD273432A34B3D924CB2F29BF5DF84596AD447A049E3A451131D660 57FA9D4C24BF824D43DADBA7D1B2926C9CA62D8AA8C29FB2D00B0EAB7322873FA5F9E2963EF721 6BEDB2D97548F6C40E233B25CB3785258D0E7FC096ACBC0FABACC39DE29BC0E770474A541D87AF 69D3B8E9BFF00AF11DAF9DE908EF674079C7975D7443F30FE21E02B73FF15FD44C619EAA8B9BAA 889266458C136A3A92E7979EB53A04EB00 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lbtr %!PS-AdobeFont-1.1: LucidaTypewriter 1.001 %%CreationDate: 1994 Nov 12 10:47:10 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1993, 1994 Bigelow & Homes Inc. Pat. Des. 289,422. All Rights Reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Typewriter) readonly def /FamilyName (LucidaTypewriter) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaTypewriter def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 54 /Aditi put dup 35 /Ahmed put dup 37 /Alasdair put dup 39 /Alessio put dup 41 /Ali put dup 43 /Alois put dup 173 /Ammar put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 33 /Arne put dup 59 /Art put dup 61 /Ayman put dup 63 /Barry put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 96 /Curt put dup 89 /Cyrus put dup 187 /Don put dup 255 /George put dup 189 /Heinz put dup 179 /Hong put dup 178 /Ivan put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 60 /Jason put dup 32 /Jeff put dup 62 /Jerzy put dup 34 /Jim put dup 64 /Jiri put dup 36 /Joe put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 42 /Jonas put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 252 /Kendall put dup 88 /Kettleson put dup 90 /Kieran put dup 92 /Koen put dup 94 /Kristian put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 124 /Max put dup 126 /Michael put dup 177 /Murad put dup 91 /Robert put dup 93 /Robin put dup 95 /Rod put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put dup 121 /Sebastian put dup 123 /Shuichi put dup 125 /Stan put dup 163 /Stefan put dup 171 /Surendar put dup 188 /Vladimir put dup 45 /Will put dup 247 /Waldo put dup 215 /Wilfred put readonly def /FontBBox{0 -211 743 940}readonly def %/UniqueID 5054489 def currentdict end currentfile eexec AD776B2EBF901A49F071BF30E3DCFAC47FA0F916EC503FFC9EFF58A2E5E6ABC78B442C3E49096A 372F9AAE7622C3ECBD02783028DD91D32C0749B44F46D712056235A4901EE1E3989B3DC1451624 40AF8B496D8B010216C5D0E3D6D7F34AED88500CEE93E2A4889C2FC011056B0222BA09F5697B86 A1350BEA78ACFDFDB589C8D82923F5F8AD8C1480A7D7EE8ABF2004A86A75BE914F200B220B02DC E0C7FDAF4B89502B119D1FBD3035453DDB3DC564DD8289E85D637884AFEAAF7C6FF38A32C70EF5 C1B638CB40003001895712A251C27020F3B8D9166E77E2A69E1FF83886E0BE4327AC9142301CA3 F4DB60613570C39367B465BD2E11A593DC63EDCC1810C1F5EDBF099DE46A7BC166F52311BE4A2C DFFAB7110560972AD364AE5170A11FEF4E1FC57E896F7B0FE2389F3BE19EB48DB67AC766314064 174EF2E1412F25E41CF45CB6990732C755064FABE454F1B1D5EA703331A09A7A9AF323557024F3 7B24CB30C52216514E014870A174249B7B1C05638083915C9B633E3FA00DBA2DCCAD433B078A91 E405EFD2CF75CEB10E524FD95A2BBFF9EEDDFE3016F6C2D3E901B81B723E4F422A0B1442A0E63C CC52A0E72EDB5035D945A2FA1441886E56D2B10A7B5950BAB79A9653CD37F0AF255B3850E1ADE0 9CFF282133A2E30770C76618F58007FC51C72485EA377798C5C8A00DAB46815939973C8FDEBBC3 7B5C966BEFCE797755B7E73A5E55CC69BDAB56C7E658C86B8FF147630B6D222993D3AC6AD4542C 078835BECCF377ECA61A10F66C41ED8379C2FCC2A5380AC1CCA64D05CB08109D76CB1901D00BD5 4761978C3481B305877CEBCD436944FB66AF914A1C8D2D125DB01ACAFDA9A8F71BA3CC83FB11B1 6ACFFDE43513DF984167288E886247E02501210DD81ED939D5D18EE3EB3644D5EF61D2BE58B7C8 106045C8A3684AABBF8EA6EEE01208F99F865E297A03B426EB16D44B34467735A1FECECEA719CB F2E24F2A15395A18EC4F6A3990D9EAC78BF523D5911AF11C3EAC620D859B0B642984658A94897D 4BA3F1F622F2DFB6861BC85CEED6172393058E882721A9B3D2E00437CF7FB8DA4D1EC8CB1217E1 697149B23FB1BAE92A7E0FEDA0374AF59FF5CD141426C498D2749C85FA6E6E2DD07EE3FFDCEE86 DC3F0225A5EF81DAB98FA26C89B1B020F884D485893B5EFD6019A149D82925F3DD9694A1058065 EE57C94BD63E5DCEF57F5C3C850419EAC7C4BC2FB81A7D0BC322CB0F88943A6F507A2FE460EEEF A17DBA7B0E7493890299AE86ACE258EE4C7EBC2C9713406E365A5B30FB045AE0163723667C9322 B05319D528C8C67AAEF79A6C34459311764B75BC63AB5165F831F1857F6B1D6801E39931FAD9F8 8B61B304696763D30C0B58313D31CC287EED59C97397E8C0A748426DB6C0B7C4CA57A43E7E27A9 A123734DC7EA137F307B9C9074B908E53E60F99E98CA0DE14A5D61967727709E1CB009EC9CD98E 9D796CF35B7B1FF2536FF8CD9E1C24B7CDC0E89DC29BEB398CB420DEC645001D90D59C7A5B5E33 20425FCCFAA23ED880C41BB82A8CADDCB8B5BDB1D57F414F380BBC00B6A8B9591B25AEEEC69B64 D671A078F39369EDA9E5C9FED9D179AC25F37A4E4D1E438B180B24D851812E407B242F932D9D07 EE2E42BAF2FE9EFD338345C15F1C8329E91644DB1EA96E6F45871D8EAFF292286D7A70281381F5 82CF13F5F987F423463C2DB96A23D3D9CEF5B4636A092BA8FC7C97AB42BADB4DE493C0B0A54C81 82650C094D0B4591A2891949270492240334842911DFD640AEB2B5CB036BEEF59CEAAE37AEEB4F 4CB45AAEDEBE062358058A0D697972BB11E9F30ECBEAE599E404C7BC4C93FC3C2A604CF7F9183A 96962D3D0F03FEBF8D7A171E9537EDB0F8769AD1A442BBEE6F003B87F9EC0C4DCAB4C1BE74EF54 73FAD92638E347980505361CA70D6A28EB18E83ACCBC73C481D4B81F62EC2FB250696E436A8788 2728E8E960E09A330121492079CD349F5C8FDF0CE6824495FB17A3A97D7C031F9E8B50D10234D3 C02792AF0C0BBAB393968B49EDF5BD4F84D83DDB9500A9EAE7EEDDA7CEDFC2A6B3B71F885487B3 31028361BDA2334E83820C7E73A67B200F8E08B742DC3BFFF6E363AA1EA72DB7CEA77826A5D024 68C8B19EFF5F8ADEFF5235AE6AA50F43C5F2EB56AFA58470FB2CE038D35DF1FDB5135B8CAA9F3E F27BACD9D828623636044D161009F558132A6B6DF4AE9CA3EA9DCF94D961D7CB962C4EA67E887F B9D7A3C5F91166D41C8427A1E0C8BA49C21E968D52B92BD7E7B1F5B1800A27F3F7321E3D200B77 98D3F4B0AC1A396BE11D0C919F55CD8AF1406321E8EEF169B785AB38BA5AA61A5EB09A9F312697 92D98DE98AE49A1308A5706738125DE51C98AA3AFBBB10124FFCE47F72BA6A1E5D96FB5BD8F989 D1AB41DA7C2C71FD1C02CE697C81A0512182ECA66EC14CC8E473378FA9EB3927BC9EA91B1BBA8E 0C70BA78B1F7DB3124246AA9E4E349421623DC408D756578B11218BE2D6B613186D1D094179200 8960A7F1B266D7C4DABF9081725EF2E5806AE27E5D8E81CC7B98C9CDF8D319208DD7A75C2B0B1A 7C13DE5CA9912EF40371D9F415840ED99AC446E1EC958001243B0C39641846EE67E79217DC6AF3 02891C024119B55AE58D14B28B68225733BFDA7BC4D54EC2EC58AEF027BD34EDDDE2336EA8B34C 63EAACC4D255340CEB8166FBDA86587E207C06C6F804C366822435388ADD4BDCA7E345DA3C3912 16C19BD9F424C5C5596E3D1BF1C6601D5967942070320981295BECA7EACAA9017B29EE70538768 5DAA8B31D815A53E446EEEB107B369B824C97D5730A4D28ADDB131FA243225A69DB5CC61C9CB21 018510F1930F3AF2AE3987D5110BED80CD8B6BF24998AC07DFB9C648B0BDE300DA8853FCBC3C4E C47181B1665670E4809D03B0FEC298D1E22937C45159BF0E1C3278D727E40CD00A3DAB814D16C0 453C20F343C8767778E20C3E12A9C0F30CF38F782C91B678FA8B73FAF9AB8337EBC636E05518DA 74C57B6696BAF384BC34CF1F50DC361C2E745A9906DD87BB93310DAEA23BCD0AA967E8C062EE03 F573B67C6DBA52C3C78E4A6BC9A879A97924F26EA053CB90F1AE4968BEB209B7496B99E7102390 4591EA1246F12A2B401C36C3D585A3C3E42E95316D7B3BB95509256DBECBFCFA8182EE874AA624 B74C146E164A7509867514349FC6ED41A0EA7375C81E58CAE6AFC5524E4506458FDFF6B6F94A50 18BB41CB3BFFA90AC6A605B372714552AC2CABD4BBB9400485A50E1122F69011BEFD2EA53EF4B5 4DF3481CDB4F97F8BBB549612C3EEF4E860143EB2FAD42E5B9D5913E53DAE0B3468B191C8ED4E2 4B5E8CED287E7012FA0D16B8019EB890D9A8BAA01629B0CEA69402973EFDC1618CA995505606DE DD18D0474B4E08F7FFE947C323A138F944A950734A4586FE82A08B7C2967E67BC975B875A2AAE5 05935906A0484CC6C2478EF1EC03E885D86CEBBE5101101C11B7B8165E132D2B427B8583BCFC89 85A7BBD5B56D12F8C11796232B430613A8B4540BF45C97B6067A74BBFBF64851305257D1BEC901 238A7303E12BA887117301DF80559342A4B551F8189E9DDBC5251D2D384831269A092ED1971292 2396105767405896450A1F07F6B660F4BFD98369836EC514D418E4ACD93095A6AA2C44D0912217 F48B92A5D7CA170A6293B0A4139BBBB39131E2B6F5CCFACB550AD74DCD4D466AD9AF69A409D09F 5ACE8C98851C20E19E4D44B1DB30905B9BE08AC52E0A1548793C591CE0E29DD2B102756822B36C 6E4BC505003DEE549BBAA843BA5EFF252F0A5E4CF14D1EA86F46ADDB6EF52427E0B6E2861583D0 885196B68E53D9B72793100CBAF160F7ABAD3A8E2887D078E7F78FDB1437F0A58A20C7E300ABA8 031E30B35D34628DF6E8A9689F2C5A779D51D6B673F38730E2C28CD4822168D037138B5DFA7A66 4318B681D41864AF487BDAC6E635996D21C5EF1D16BE5CAF809C6E34AA787121164292ACFFA289 15A115A11700B26B0BECD9B05A4CE538438BF67209443B4ADAB5BBC40F9F354A90CE53F0C24AC1 F2C37FBB9022B23FC9111E292ABA30410005355D49B56D38F4C33C37F8A891A88B2F51957420EA E5D22618FEFFB7C1A6436E75E4E6F4F8B3B847D4CA12D3D925A3F1F66EB6D87B19A53042FC860D 2A57D2B2967F001F6B56DABED79E82D33107FAD1F46172D4EF1A52FFBAB95A33180B0AEBECB34B BFA4DD57AD85FCC81833CECA2A9D4667923A57CF8CEA991565051E3BD29DC4CAAF8B8DFBF3A76C 8EDAD02C5F5EEEC19D462EB48758B2440329F43A38CC21D68D26FC54179ECF102F15AD9AB1DA75 046419CD4B0FE0BB79C77A72CB9583EB321C978C8F68A3568C52CF0A85C938A8065D18DFAC5C2B FDC4659C10A237F09B924DDE6B6E09EFB77C158F9DC22E6310ACAB98218FFB6D547ED3D5590541 AD5862078A9CB34C2BB08B4C3E620E0802E99DD0572B36E7B7B9DB269FBAD73F7A49F711E2F790 2C0F15494D642FD63010E3F1B5240ED79B617A655D5FBBB5EACD66B85F02C54023640DF5150BF9 88B62D82E068EA4E35824FA098321F86B68DFDEEB8F575B85AA76ACFD6FE55B40D2B141DCC1B65 DDDAAA3E790F6B0B491E80DE0277D25D48DEAB2D8E48A004C36665468CBE3BA496C57596AB679D C80E9F744FBE8041D3AD6F077CF65B0612F180E8403CB8D58BDF46FA5615F5BAE1AFE3959FD4A3 EB1743ACC7DE83ABB701E949613BA573A67B4E9C816348078B2F857609582E5F144BE599EE4B15 85A08F81174FFDBCD8AC2258B7FF161EB3A1849054B66934DD76DE536680E3AA92EAF1985D5B56 C68B693A3EC10AB0FFB2B88609E8870670D2AACBA8B20E9FC5ECA607D3D90167453BB172484A55 141AD585EF5173AEF115B5BD89B653246AF9C2FE922A8F56B78E797C497318FCACD97E8F33627F 579C8D1254166906EB06F96DD5003DB43878316E2EC4109E8FCBFA4B978AA15701BB16D633C2B6 502F6566AA3869B9C94AB303617C3787C7CC6CBA808FE9C4E67725672D654E075657CD646E26A5 82C68B47CE90C154A51CA289747585668A5A2D4D73D97E730FDA8F9B648B685B409A742AEAFAA2 A818D0897970766B186FAB6836899A1091CD3B9503533334293ED15CF42143C13CE2D05A6EAA2E D1D12A3DAF28F9178B9448E4EC2A8FF6CADBFBEEE028AEC622D3CBA1118E92C98C4B303F8588A2 3012067D2E1481E68B4ADCD6594737FB2206763B5023A0148BA31A165DE5384C63480CAF82E59C 28A133A775A6E7E3A5A17CB8D9D6A3C9F3E638F67CE5D58926932DA3A9DEA6ED2CB7B5BBF07C6E CA417769D07B64A534906E5CB96DEC73E8093209CD2A85120F6E3216B5171B4BA67F2538785907 BF3B8A912CD7E6362E528AC47FC14F2832924FB512259CCE6B650AC1730C5E531AA826D86CB8A9 D9AD673294D4F1D3CFDF738BE5BC6C9401A164C6E7850794ED6587D592F44D409855639AB72C01 6C55878BCBE20DEC3D4C15B0C0D47EEE44D6A4E91AA1C297D25A44378636BE4EB6517BD486DE12 950F53AF60D94F28419AE67BC2316E26BA82ADA180577C6CE2A56FDF0C1EA9B9CA2EF55A95125F D667870226ED5D780A34EB34F468460EBFB8152024F200E40C6D42D5C5513E163C02B82C42FBF2 E4433B60344D3EBEA637C78F734FF3321E743437F5AD1B92429B46ABBDE8E115AEE2904B3F3FE2 369679466A59EC0433FDB261E8B2F227CEA66E4C57DF67F92284F0332A4F4E46431F282EF59975 C430121C5E833A8174095118BCF0CEC899EBA8313C3690E85225F5212ECE4BB82902B0C662D78C 37747BE77B81F47C24F088F5F94A18BA923E54DDF65B9DDF5E9D64E4D8B086BB808CA791A0E8DC 2DBBA31CD58D21489EB64B11560AF93796A8E1E206DC7C15F4310FE985E47A929F76A6BC154FF4 2C07B6F96E03F1D6BEB10A0E053C8C7DF0692929D1B62A3074DCAC64B1A6821FD25F6B434BB016 E3CB58286848D04B8E743C400D477FA5F2130352AB8932CBFDFB9FB5C6C6A6EE9DDBA6DC41589A 89D5F223DEBECC40BBFE5CB5E5DA18A511450C6A679D10FBF99F6A391B11189B921246FDF6F552 5083A1361F6B232E1F5A25F5E1D0DFDB1B812BA87143407C8ECABC78E5C7AA0531293AC7909A8F 7E27C5A87099723739C93CC4F955995D664D4D043D5F4B27028D336A03313A6BFD8A4E1F4023DE 1AA5A0F7EFAAC52FF9378BB890ED9B29F50DBBB920676A54FDAD07963E2846D3733B7417BA5334 5F57F1372E89F4020DC6A0AB9035328B0DF0DF71110C2A452D2702488A229B54FEE6845814C21F 764007C8E119CF84454F608C91E1797DB85D9B8210BA1F7A7CD12B2A8AD55DAA18CF2042F4857E D37C2ACDB63984DABCCC6BDF6A119C464C7D6EC30CB2E4620948B1B7BEA3A2DD88B15EFA953B3B 69C2A624A0CAEAEF17915ED4389D1217080B7F7D91887E055A86A6B287490DAD12D6165A0243A7 A64587BD329E130F8E522D6570E59A33595672C7110FA2B8DDA2EC48F45671492804DAE5DB40A5 42E21C27D2A5F2C37F00E871C3087613F11C6249EB926A0463D0486C5D5919A0A6A556D27A6AC6 0E6065AE76BCCFCC3525732DF91F7C0F24A09A8C2053C231348BAEEB93395AD4DF4AF7A99DB0CA 9CB512D3D71496A74CD776A68E38B90673300A297F6A244CCD0341112F42CB9955DA3980C15BD9 68A2B0DDACE0A835ECCEF41E8CF4EDCB493B59882F812BC4D85694E508FC0CAA2AFDE8C0B21F2E A861F1620F6D01DFAF25B3ED11A7753395F97FBCBBD1E3AECC00B5940A6651BBFAB3556F720081 8AB5744975F71644FD46B060CF74147238B6ADC1E9FAFCBB3C2D2A3F92FD4C141C520978A992EF 90B23EE6178602D2ADCD143E49C6BD72D24C3581F7F1A76E9122B4D8C9DFA3FA94D3CABE5F84DC BDD90ED86A2E6D8C63EF7177AE85AEDE1A594DBC3C249A7B108AFCC6C75A502EE3CA0E733808AE ED05CD0B95431DF8AFCBE86D9EA04971A1ADC6558B5B82E5BC3F98AF6DC4401B04A4D39335C7D8 13DA80152ACDBF6498B99B3E314D18981340A1117D206368E4F2BE11F46911B33BD6FE35B0109E 5B294F59D3F025FEA5C2834ACFF2BE105AB95BAF201BC50A4D98B85C970AF3E39E0B05D15DF28D 0A18E82FCC16D85BAC813A9501A10F4CDFD022905FA5B10C8763361BFC4CB0FCE8654062C0002D AADE193096D10973533795666EEE0AE8B7BC76D60B1713769DAB8AEAFE36A6E6786DCF15A1A890 7C4DF6D252A5CCE68B28B6F564060A53FCC5E39E97FF61DCDA09DB31BAC530C8F5B999B1FC4E36 A2906088897488081D74802A693DED16DCF651F62C15EDD2BC721619F848EBDCF226DFC535A526 C3247E225CB344AAAFE6A954E89B8330A9F5B05961B5A7D362CCD2268D993EDCEBFD46C2944C91 7F004CD27CAC0F142366D8F2419CA77C36770355CAB1C3BBAEDBD7F4D0150C4BEA551AAE4CF898 E5962B6579F5B13A3CAD2EC25AD7AA6015D07028BE165BD40F27A9B33FD805B8F42326CF94589B 29249E4859A8D0F306E3BCB3A7EC3298904B0CC87E913B90149C765A43CC39144D523D6B26A509 E00236093EE99B3513AC69DC5A2941F1E48A71B213559621E5BE6A641D943FE3A13FFD796F2BB1 A6C452A24E4B9864FBD9A9B5331DFBC5DCAAFF5EC6232F15E9412BC2230E8394F5C0F92244FE91 8043D83E3790475F6B35673F695244CB303D708E8E92731C657D81C7A28EB491FD849179BD0886 E72E47F1B4C34B465B4B0A212D57DD804C7CDF5814B1E6B87C9ACB9C74E1EAD3C4B8889EA4F25A 0CE27AF6F91593F0DA3F55C15C9EC3CDA8D6BEB60FA0D8CFDD2C34C1B0143C36A80B3F77E9E4CA CD42068746943063788129B9B10DD969706035C3FB7971E9A56EF6FB3A0B4ADD1D977E014E1417 ED81B819435C8D8002AF809C6A252FCF5F17BFBC747BB7E604C9328F353016B85A69F468164401 67563700E8EF94313BBFCEC58B3FA6C89C0F79AAA61537DCE0B489ADF40540989FB040E2FFC535 0B85D9C011A94B7A806482E02C1038F47D392BE62F7A192CA4659D8F0A17F1D53DBE33A6749125 CB64549F2DF8FC0283E48713E166A6401D1DB6193DA6F4DFA2AA7430EBFDE3DB993A6C8B58132F 3D57AB5E466566ABB13D5C29BA2262F3F6F574D275CDCD653E1F8F824F516B1C688CE97C14FF3E BAB81F8FBF0A6F64648BBE7F5AD5C331614E5CFF13CEA871D865F4F788E4ADE8984BD939AB33E5 17121276461DD3125F3B56CA87900CB449B6497FA6D4F5FB859038374D5BE0AD2A34B1ACC9479D 5530AE8EF469891C174F8860837F7A22F72590CB8309079CDE324BC60787EC690F901A69FAE187 2B6D4D4576F06F5CC37495D0C72A45AD47D2F6CD216FAE7981E4859B5845FBCFCB61829A6BC8A8 E7A9A0F53C020767B5AABE20CFBF2504BE5BC7D32DE9B56BB1F0C48330635D3E72E4913CB1BE01 28C6BD47FEBED891A3FAD8BBD5F916B466E974F9CB2B3129B29DF1F5FBC7B2BF2AB8B2769C12E0 435ED3208EB20E9657200806391492BB1E5899EE594DDAD170A0A61BB6A1D0581D685C80CC2F9C 5E5AF62ADFAB656A33D22F7A572FD25DEBBFEC4B36242F8D77D18A0CBDE2FA03CB8E9394B9CD88 D63CAB57E79081650E58E4BCD0E5A878CE4621251A287C64035BBEAA80881D504C75032F89280B FBFC4991241167BEBA653AF5EAE9B1A3280A58B9C4C59B2FC47659FD1F42D37DB5470E46D2ACB5 62A1D0DA3F4EC9DBEC40635018A141152BDC88F33E79C6DA6DD616BF689E052C0464B62A1E61A3 E58CC805DEE666FE4B4F0096D6D682384A2E95FFD0B542AEF848E1B54056BAEECE36F0C62099F0 4E0AEBC007352614E0349A18A2614FD3998C9907BBDB681C74DC3A24E5C002EB64AEFF55CB6EDB 44CA80E99DF02F8A7B1016824AD38FE7264BDAC41E848CC7B7B38B0C50FE417455BE9AE00F0F8F 79B0A5F492C89CDD1D18F6FAC750437A96608C131AAF7A9C5BC0D3110CCBC25B19C7F1E3906C27 8935A398909D2EE97723CE0207E9CB29807CB9F8ADFA813900D190DD0CC8E3CA457E8CD392441B B800B2B30D034ED66518D487F4F3C33DE3FAC0F88D9A6A597379C2500A6954EF80302912AC116A 74A520C2E40AAC299B78F63879F31E2A8429B13DAF83428B12DB5AEEE33E1150A0FF4174DCCBF3 9610D0BB68DDEE4AC044123B208F3D37A5CA6A646DBB821975DA03DEDBC42714949104033A4C31 0FE6BF0B70F922EFF8C51CA42B1CE7FC496B43E2DDB4B20AE6373972105DFA5843E9A64F63342E 36B154E1575BA26998878A96CBC9A34B2E07188D6E1E8E69FA557DB604BCFFAE3675E237D97F5D EF4C8D2257AD409B239F1D9519F9B718C27B998D69EC2B5321F97AFEDD8F7466E64F45A0843594 7B35221BDF77146E4E33F08935C37F0FFD44D506D8382536365FB3972C455A6EAF0761A03A85EC EC2E8D0FD1FBF0BD829F18874C7C25D8F0ED087F9859136919DD52AC3AE08A7D848E5EB11CEB54 2BF71B537DFA59D6E081574AF536813DF6D9B8B31B83BFD52DDEC2D7D833621EE2608619F0A61F CAFF7EC32F2B0727B24937644F40DE81F6D86FC17A3417392B04448A5EC54C0B0BB1B60F38767A 508ECB5B30113246F3A3066310BE7A115CD9D35EF4133A4110B10D62EF3077CBBC8A3C64E5566C 19BBA49AD10E1D5D11BD5A31DC8ED59EE62CC19143533502D580237950FE90B7ED3803F662A522 A3DF2BD026CEAE7D614EB0EB2D29681934DCF9AB2E6124A18FEFA62F2F478B87E2764C59C2EFF8 946D326860363543F0392CB582F6AB173AF2FF031E77C939597381F724D242E49D323CF0BD1023 74B67D028C331B64DB4642946C72E82092A4890A5491130E312ED47DCB238161CFCF412BF7738E 81B3AABB3CA492B716F92BC684615519BB513526C06FD5BAB6F196807D675DA47A7AD0216B7BB1 35C9EFBA46313A9A7D3E40A5B7E6436114846D1032A163305534DDD10DFBBABB912B1E18882A47 5154FD2A0FB33F1E4AA97827FAAD01CD51F62E492AFCF3B870B5B90AF7CE345F99D07F134A790D 312A7FF00B01DF37741A5E2B98DC2CCEE6BAB34978374CF1CE2F83F03ABA437790E0BA33A0124C 2C8F4A13F3F0D00383141A952242B2129A0B96A45B1CC13255B3118991293700BDDB4E29BC913D 0A3B44D9E5F7FCE6D153EF4FF3824FA229F841EF6DE46E113C9B602A298868AFDD1825CEB017DD D59F67ABD724D8ECC9261BF90C413BB4818D060CE5FE0B0EA9CBB65850E5FA181E9713FDA06800 FFE7C53D9EB62B222ABD8E12EB6E149CCA7713C5639ED530A30DD12D69E271782458E53CC14DB7 5B053E7D61DE9E231A78C2391DC18EE092A5F76CD61AE5B7894B78CD378E0FBF8056701D4990DE 1EF0F36E918D98CD907F624E654836F18A579C7BFB23DE3AA9D59229C3FB1A4B857D9EFBD289AD 0FFC27B6EB42148E7AF8A802C99B14ACE59B52A111DBEC97EC5BFB0F970C9B27AD6231D66F1744 74207E935CD40B5D3787D85B46D4C33AFF9DD5029A0172118C624DA5307F9FA33C256FDA460479 205650A52F5591A14027695126E5AE946A7BAF34835CAC37560EA030B3DD2B06A6DFFA0D02F634 E344CDB5260D84FC6338DAD799DAF44C46E4C4DA1854160E76FBCC0916A3EBDE474E358E9E8B32 8F1223DF95A0F1F8CCF619FBA607F0276C5373C293BC4C4D653893B83F3583D9BA549F8D229DB9 44D7B4B835F97197608BEB526AFD58416980C3C8ACA1080C09797DA0A24B185C793636A15FB82C E003906B613CA3D16DF1D7C51033480123FCED0205AE45BE3DBD332DB88D0BDCBB4DB845AC13A4 215B94ECFFA4D4E88B4BC5093770D5DB8FD7B87E8E4FA0E58F651270701EE92A3B287644F56B40 97237BAD7453C25D29B293ACDD4A295284480A3E19DD134E77498E16512ECB44D77EB24D6C35EC 4586D9B73B2F60FA1F758FA86378485C37D595ECE1B0FD80D64CEE30B7F5A51A724E72E18A9B22 AECA8129067304660294A309E9797F8BBE2402581F43D8636648EE6675C4D30A8B50DFE587FC41 E5C04B4430C58AD44F57C8F6AAFD4750AEAE51BD4715838D8BFE522C6F17ACAE809C3C39F50D72 CBADA2547CD9D0DE80980C53D9ED68E73214037B8A8E365BB3DDF7350A2D1B9AF3ED802436D1EC 75C60C3617995E3AB7B8469915D80285E99BEAB6BB88A9B5A388D7D7CB950E7DBC168885FC5173 4FAD3CABD91109104F52525316943C6E16ACD17CAE128D81C0D98357B0B806ACB460A5E7F5F7B2 385060402CAE0CDAF70188977249C809CD4C6B133ED8447B926E1A30D4FCD0968FD3FD45B50F6E BA94E72E87D4BC7ADA4DCC3D6DA0F31517EA9DD89F6751F707980CA84CF406F7A786AD8E4377D7 5506A96F7293999800C1A59CD813F18398A4094D7426E250BD21F87DC58C094BC00A567541BDE3 D17E1BB01C4AAD986D1E79CC4B29234A28A6A323C0FB98B530012E523AFDA4915851952149B238 CCA18B8F974BAF6CCB738D05B6BB1FCB0825FC1920C4E3AE8A1DB3B7C02991A543AFC9D38DDC1A 563793DEC85BF313F6CC40A1C8BBC09580E54EA3CF1E399F8EDB969290A3203D86D67327E567F8 ED390542AABB07A0DA177C3C6B44F5BFBEFB181DBCD1753C6712A6D7835A64B36922173FEEAE67 735FB82A09CBF309246D104DF7B14AD6A6A87DF431004EE72FE7887929F4DB593B0A113F176409 E69892A4EC6CF250F984F2CC2904C788FC7FB9B164B7C3AAF3B9BF5EB17108C52EED49E5E43D16 F94ABBF85F784008958557FF8DA38DC55BB43D6F8671BD2764A9F276C2A039FE5179D23455BD55 539DEA38921C66C7E19EE407CFA868E9CEC0694D756EBD5B9EBDFE6D18D5E9E33433C886B24CA0 B0F131746FA8FFD23D427828A4998D0776549AB2B4F5B610F07AED694655A7152740A275DE60AC BD7811F31203F32D071761E74D0B34BBD8158DC1282ED895F803B7FD689D429C9A2C32B30E098A A790D6247386B89F03310DE4665C3AE77665D885E456B655846956CA33E3A702F79A9695CE7510 329536FB24143DB109D0E858CB20B3056078F0C151419BF06BBB871F925ECC7B4131E54A935645 D4E00EF0EA720ED493E6731508EFF11B81D9A4DDDBBAC935DFDD1B798BA0E34B0D5695233933E7 8C0C9C1DAB44C7BEE45543C3C310C452FCE97964D2B635C5433318FA367D20DDB9DC8CDCEFE0B1 1DDBBA2D7A7010375EE581C7FFE97F89BB91E3FF1624F0EF5FE27CF9A027BC8D1939F91D88A873 5861127EB0CFD88300D3B821DDE0B54B62762466790A949B2DB6372C75732E87F54CE4F05325D2 0643A2F8388DE10E1C4CBFDA85A70F7551CC8A8F088FD46483446E0BE03BDE1B5F2B23D9B99EEF D4641BD0EE2AE3310B0CC0AE418D0C6797840CC5BFC4F54F0D6AF8DC1AAF3DF297D3955ABAC771 214ED10BC9E88A4CEFBE6E07EDF9F7A2F52C144086C13071F24CE826D468098707090EBC28BBCE 12E0AED14488B547A70EB783D97C98CEBF55858B924F0DB6754B3CF833EBB5EC487046A6C3BAE3 AF59F61B699782A6109E0D7544846F4383C849A917ED1750A8F5813F552C231A3E5954F57C8EF4 D02BC790A6DC865F77B78D920D274C2276F9DE3887540C460B1A6029419B9EE6B88FE29204CD4F 62321824A8B72FEF463400CA6A83C2CF8E161C76058CEBB021216ED92B4D889A9CEAE5619E0CE7 DE0B6927577AF0DC385FDD45EB6F116778E91BC1EBB2B6027FC5D39F8A233D27BF581DB38D31F4 20AF47E77AFC2D67A7FE90A10F0D6AF0816BEB7CE905FF00E5C2DA7CEC75EFC3A170495999AFCB 7A9781375C03C495FC9CDD90F9783CFF0926D795F155CE64AF0817726FCBE7BFF6566FA1A1DED6 D4D6C2395E7DC3DDE9484A2FFFE1C67EDD9D8741E17D526079ADA966C5F17105235C7A5E09B82D 1752B97568029925A6E25DD461063227613F02B66AC5DDE9B4018E253263CFB3EEB717BCE0F8FD 36B0EDF5D82D2DB2DF28F72B13D148F741379D7C31443DD9C452B3F5A8889C93F15957064DA4C8 BD8D3032D94A3133695934D299CA4303797B6A49932A1B672A72DDE67106E2BE984CE7E6BAAD36 396AE3EBAFBC268105DCC191E2773ACCBD92A3D32EAF57721C0EF3E34744AE1ADFD9C56669A08C C7E95C1908D43B569D82CFD4CBD7A41D841D10C107E00CE93F033C7449B78660FBF82D157601F6 A9C721C3FC1264A86363B5A151F63C8B646E2D7E5D44C3DD46CBAE571FF53A9F4064540768148C B69B9752D1E99EACDE8BD201373708BF20C689BDE479A0D11DEDA4243E6D0ECD265294C079C7BF 427F12C737CE72238894FAF3571DC588143F2C86EABF4512C63672D5211514D72120ED97AE70E2 FE4291903259BA3521EF94C9D13C5A614AAC9BF14514761F5D3678F4F96DD8B0A20AC00EBB9A43 235A571280B34341E5761EEA38808C7485C6B9D15B72BA4A0281A517FD2E5E660EF9EB5BEEBD43 2D537F8E3E2FD2BC8D221CB3C6E578B1627EF869CAE922CC154B38D2239A7FBC8D85727C1D533D C71E873CF062F0DB2AD29763A482B6A601EFCC9BF9214E9B270BD9633BAD41C2308A02B94E860E 9B74808796488497C3658F3F33CC29EB099CE42B134AB7A5E168013C64F056375DC95FFFCE9AAA 7813C498FF43DDA22D5186F6E7B3AAEA39A72A5C0EEB95A0CB79539FF14FD409F7D357FB06629C D99C5F277996778C7FD19E776CDC015FB37A29AABFF21ACF0BB36A0F8F7D6758F4AFA31FE61F95 10905BE91866BCF1B92CC5638BF90CEDE72FB7F46FB1892F4F4E965DE76D6162C515195A39FBF5 1A7299F01D20021720B8046FF10A5D5185B217BE8B62874281AF2007EAEA8C41911DB195B8C3E1 BF0E466CE3F398A111A03958BAF0707BBF153C1E4F966E4645795126C6912828923BB3952C5099 C0FF6855AFAB944B776511C96B77A9E0459FC52749F0AD982077A227792126507426736F2965AC BEDCD7938A0E27351E5CBBEC3E331BC2568679E1823DBDCFDE6E46E999604924084D583696F05E D161CF7CAE7A56A31A7EB0BDF8F5883A5825597227619EE45655F15CADDD3100604877F7221866 A27520BA9F4C72A5B7A1B45549C599BECDA8D24BF7504ED6032981AD5EB25E7DCEF6B0E7295F01 0C881F0B0B28C39CBF0708B8F96AFF3A0193AED2DFD8AC7E6F4D85F2EE21971A670C010857737D 4D3C1CC4D1EA8FEEA7756D34FA95B2BE2A27E5864A4183F75861F2EA00D050F04D6C48113EDD40 75A78C5C64E41B437AB8FD6E12C5A25ECA76816702CEEC2B3FE8DE398A130CC49330BDEFB0D76D 047E035448A59484D48D18EFC534328A8556858D4B45CC05377B8140598AFA383939E4A7F73561 68C7B016D012C37B405D4523A1DB884F005A2572A039847C7C065B8B92DDC9BC1E803692A39CC0 0A49CDF0AD24168154D03BFD56E1EADFE29E556B52FD11CF838378E4E4FEAD5243456648DBED06 2A47FA57542E137A9E035569D068F08E43DC4031D85925DEC164FF91F8C207692E8DADBAED305D D38FB4952C61F50F9E4E4CBDE408A16801732F3EFD6F2D600CFAD6F691BD36279AD251D991F24D 18DA3168749E8469A9A39F2106B98701956F265C3DA4081278A3366118DAC644DD5B4B5DBCF7B6 EF6AB84D9C41350B18320C0FFEE0B5C26AEAE1A6028093337FDB82EC40105175175CC19A7884A0 B07DC34C349177DD4BCDC16323E36197073F1D6447BAA0A45F0DE7453E6891AF0FE2D21C26D9BE 37454F2F83F6E974DFBB014511275360A9FDBF6CB77510C92A45C0C1FF6A004F854FDD323CA4EA 45EF334B4BD189F1131FFA7B4C7FBE315DD788FF2D89DC3804ACC9D689816A22E39BA45AA98AAD 6971FFD22B5CF38794385EA00AE18FEA562E0AD2688CF6176E1FF4CF8910ABE1C4E98F59750C26 9858AD2B32E717C29D97878953F729AE13B3403F997593542639DEEACE7BB88D45B6C4FCDBBAFA 3B18BC0F085B25A87B16BBD084EE088FDBF6D62F4E65052E374F2DC012DF690E23C6A00A5E8760 B2B2A213FA8D0B31E08070741FD2D8752274CD71B1CF566890113EA34518457B1778DC1CA38345 78502A62CF4CF563252B3ECF554D477283CBE6AA7A434A279AB71B2CF20765F5B197592C681FE4 6ABC6115B49D776B1CD457A3335FB3B61B4258EB77327688686072B7906B2D8016C5FB12A626D7 E8B2590CDF574F3A410D75FDECE4BE7DDBAD69EDA08F44B73D6F7C92B97C67201FA2AD698D058C EB7AE6C88B699207669D68FAEBAC5E75905B9688707B199F516E944056C2CBE773CC95BCE59D82 AA93DF52227D477CC2345EA8F1A2CB96A00D186F3A02C30FC0330EDACC404ABCCE86F0462784B9 7C1F55A03C4ED89C79C0BD3A0AF3B19259963CE966F654D7D4EF9B9093B27526E5C09A084F3C9F DDF3C8F261A5720DFEE14B6B198D8F0CEA0CCCC7B70CE185F0B65B0B4E5CE79898A8E3DBEBF65E A2A7F82EFD92AA7EB65AABAC5A3CEE49070E78D5C591409756EB4A706DE5192D13083C4A10BBCE 3A818990406945A4036CAB65E3F53A54E6992866E130F01DBADC1F15751256DFCB408DCC671CA0 731A01A6457CB40B4A04BBB0BF77C8B655ABD484705AD31CBB88CDDC3C599B35B86D3C4BB8B8E6 7751A095E43C9B9228C58A920E48D679DEAA88DEEC58F7B5573DE4D7C7288BA9F0A5899D1E6588 557ECAA123CF7D504406BB03F580FE02A2E88FA32F9A824B5A895CE8EB1BC271FF2702FA463454 717D37672DF5C7F78561F889EB0E57984A96E1430B26E27BAEFFA17AAB5FB94A890AF8FB57AEF2 4FE880121E0B31708F1AE9B09DBE64B26A5EBFBE42A4BBC0C3ADEC0A14CF7496AA53263D4889B0 929645EC2B8C5144A4D76FDEDE6345B1407F990C5D7644B21C0D827AEA7D4E8D4D17311099A703 689B2F68A9EFE15696C589BC02FAC8F5CD6FF68964EB222EE012E28A490614BA93405E4F2798EA 0E8A8B5EED8D7C554737ECD26CCFF16F50C8AF2373E8688DCC297269C2836E4FED50EABA465EF6 908DF9F55DA80A501E0165DBEE8E3F9FCE4F6B9C31AD5505E71AD3D7FFE6EAA9D764B965FC163A B0ABF7DFEE391546EB78C79466886C7393D4036FA247E9C4DEC84FE72D4B5AFC6D7FE58714C70A AC3799C4B419D3701267915677FBD571073B70D68F141651A59ABF8B6483E216F90117879A34CA 43BFA857B831DFE321C2FAFB887131B607D2B9AE7F0290705C254716161DB40AA383006A8B74A5 767DEDEF5D60711B5A9E45D63A6EBDB15740AA04BAAE078FAD7FDCB9D26AE3DBB66ECBD9D7E641 D064B881BF5190FB31EECBF3659036FC145D8BF0DFB325A78F0B3723ED8DD2A967BF916A90A92C 32292F3330D3F1FA1F31CD6AF9373D12A1EDFA00EE7A4859BB6F6D4D6F6F7F944ACDE744E3D6DD CD646F83539F983B1C70BD94E1FF6CD3E072F06DF4193676388C95A3E4E3D07ECD40FB6928AC52 CBCCF63B71B47DF4567E19E0840D6452494EC3883F6144E5791853B0EBF93D6DDDF15B3C8AA14D 8A20E191DE9ABEB1ADF7B19B3B688961F0B86E215451E4DD52BA655B00D1495BF08660AA5CE7F7 134698F4C73B97103D1074220946455466FDC08FFC63A1C97D60E0B931E94A6A559BAF54574696 D5F5460FB18B3213144F42F1AA8D5FEC8361A6E401A82454C897403E82DEED2B65E6E50CC603DC 34BEF5E2EF0F2FC24421E5DF012640D1C6E5C87F2CC8A3997362E27463CE29C903A5B32863321C 55B8540DC3DDAB6892FF114F3EF72647A3525119AED1A65DBC779358C5AF9F3AEDB5AE85085CF8 9F55C71EE44D229C122DE658C83290BD82FC39F044163EB56F841A9E568D50493B535837415A12 7D618BE80156E1AF95AC39BE234ACA11CFE3744A8AF714724C04359EC8729BBEA07EB8908FC41D 4E5D045D2261A9E20C66A161F98584A2FD1AA56473A0287082ABF956B6F34C0AC3D6139C00020C A13C7CDC60F1F1778CAB99930BF104139967B728C75120BB7FC3625513C7F992CAE757EEAC275B 7172522F0E178F4EB6F862080D0494FCC5F159DA45FEDD5C7A19064BF1EC59531E973A9846C5A2 F8BD12B34B0152021D6C41F7226BE7DD8876AEFE003A4DD181EC983284F8855F9535318246A668 196BACDC3A71CCBB1BDA4547168F0624CB896CF96E7629EC8D1BD11530E5E8D5568D77D9DCAC00 ADB7021BD4BF6FC3E1F178C51E67781337D7D3AC1A09ECA650B8278FF569501CBB021B2C8C9ED1 C9A23380D3CA67ED0E27A41929FD835DB776103C8CBE4498470C2ADA09AAD19EA5D781C3D5132E 8C343AFC91E36ABD78327AF6A4F589F146E702BBF6A6C3EA6F720B5052FA18E4BCCDD1A7B8C7A0 E654A9883396E6442EDCF3ECB05C55B0895C130ECD3B9544A3FAEB5ADA3F5CE8C5FF342D2DA291 2E9FA59276DB5418BC5B065FCE1ABD42FF3238894BF00C86C52030258449D995943259F600B1BB 8F63809E2D84425DB00AF60E9E8AE791E5ACB6D3E5C7FC9023144DF022F86FFFB37D30899ED2D9 FA1A5CA5E442170A2BF817985767EEA87C4F57B8E19681F607EBAA22860C8C549738FE95D85F4D 2027CF0F99F31985FC568EAF856FFFC056B118EAAF09E8982C0DFE550FDD8652F3D94CA70DE411 00C17F820E4A7A2217619B20FC0303AF62BFF042764382147169272BE9769043C3D41F9A246A01 C4C63FC7DC2FD62306EE813196D620F584B007BCA0286A39E296B210F64F684CFB2F9CCCA5B74E 950D35A1F18B19A26940674DF66392255091A6A6ECE640DD8142F5CBEF4A7810FD8175C9833539 A34A911E0BDF64DBFFC534EE22CA6229D62B7A95DCACC46D3989BCC85749B248523AD44ABFE05B E796126E6745E1DD1653FB938612FCF0C877566CA9F686823F4D069234EC7E3826D0080C32615A 88423A09651A9F3EE6A9DCC95646FB0E7E24C7C3372C6D6CDF1375CB4EB1440FE95C5C7FE435B7 290E78ABCC143A9C015B410A8555271833A466D49AC0611340731580BD29F73A2DCDBCBAA6E07B 643DCF9B18613A6652B655A2167CBB1CCB0FA71534BB0759873FF5B4CDEE677AFA1059E1F4519E EFC1BEF079A9C04D13842F516B096D3D281533502C4023E13C25C59C662340A45B6874B5C9F08A 08BE03B7C35FE00ED31BBFC5119463F2FB1165D22F117A04F27FCB5F0949BFAD0E882703755454 B629821B7EB4B048FBBC21E1390620EDFDE83B894FFB434632EB7B4B21647D4C9660E7213902E3 E2B6AF6181D797F2551513F3529E6C7679712CBF72F2437CD4685E117AD8C2D61A28132170427D 398392C7A27EBA6C244C6BD7700969004D52395FFCE11000B07A7093714F781E353BBC152F2EA5 B275818DA2E9FD5C04F63B23EF722257EAB81FB2AB97C5B8BF455B2AFE648C895A6D38BE154683 831704144F5D8FD68BBC0A96165E27F262804140E34A7C7361CDCDD5F14BA4A45EB7BDFFFF91BD 7429BFC9775BAD532BD4DAB6F7FFE85CBD60FA6D0B138CE116058504803D0F449ACA8C380A7829 A0ED3623A5EE64BB34A345A8720C7B57B1A7C18560A5E56A5DC8C553B58A73762FB04036217CD6 081F8227F61556BE59FF02C0DEA3639D44A6C3C97F921CA96752FB9B9D28597873AE2AE2C38D46 A2AF40DBC3DB23A297503A5579998B0DB6B93D1AA1ED3BF5BCC480D0CD9688135FDD40A3E487B9 A4005AAED374C2E9E036BAAB288AC862726F3FAB60D38B5BB135799A3BE5F4470903445D3A66C8 24256158426369C70439148F4701DDC2F6F6F77559DE968F0305C42B43E665F7E8DCC6D72F055F 038616F9C030A9AF1A06E6036E72640D11962CD4A622A9DCD07C8EBAF060BEB846F25C1ED28835 C28059C5C1FD4987CDBAC09780B5AC782964DBBEC7F776B5DB51B44E3817BFF658D2DC37C4291F E1778D7B964E22AFC5EDDBB03538567378B7F62E806422EAD35C9F6F82046E7E79BFD6FAF3E7E0 A52C63DD5E8C0A838B3969022987DCB7377E15BAC7B1525EA24C666E0C69508881C204BB515233 C9B6FFB3F0B4EE37D12EDE6E192B1A17A7F6699FD6C1E87F03C2D8AC0B9DEC767234A2E7C32016 D3AD9A8015F489BEDA95EC6400EA9DB2CB8626FA253A718FF13FF0E013A172E06C3E5591C15715 C60C30795CAAAB098B52CE441EB71F2063ABBE3DD3558B7F07DB17F49C24A7861589ECD8E825EC 797ABE3521B5924F53045230CF94C34F5BD6F197E008F3BC38401B3AA6BAA7EFF54F1F926677CC FC0E77D5EA05B218213737DB84C21AA724E05F37896667FA8EF4E3899727DDD936BE2F8E64ADBA CA74032C2FF23805D1E6029E7B305F0CD7259865D7271444A5886B5C76CE0DF62429164E844F2E 95880B6BECDBB0BD005229964442A20AE582DF5F3735885E217E4C399535B965047A892BE0985F 6C1EA35B95457414038746316BC93CF4C776AA50650E617A6F0DCC586D3F4CBC19F6043DD04915 F0CE9EA31EFF2F8D36268A044EF15BCA63FC5AE91D7DB0879FE5AA9A3D51BDA3160658ECEFC447 CD2C9A848D1DB4BB48D277EC154B52297EBD188B2B7ABA0E4B840831E1B9B647AF654E1BB08D0A 64446A3BB49FB7F19E8FD8E9084C8B8C93924EFDFD9A9458A4F3B4F1D948B123681DEE542CA97D 6A5857A3E47622A6C6B2EC09768705223894BD7867242D819277C5DB24DCCE8DA6062199482923 4F17F56BB1A0C2A2E099BEAA6D94942AF9706FA6A1D0C67560BD1E3861F8FFD465CE6C48AEC2C1 F762BFD3D4A68B8B25D0FFAE02376B34DC1BAD9B39DAD6FAB6491002A1E6796BE978DC1DC62EA3 9D708671DC9CFE4F757CCCE4DD7F1B0ED59EBF5EF3DCE61C4AA16DD6411B68E8A9CE4FF6AD85E6 F98CE16CE25A8405801669678204CDB7305BD7A29469C539BE2348B8AC412DC95EACA3012D3D96 A3BA334FF4E16EDB9115B83AFD66192142423BDA32D8A76277A763C373217BE75370C5813FD53D E7DCE0807C087DDE87E029F0211CA9F1B1A67E72D7922388A6C84B3C6E3D44B192B0B7588A7DED 100C04F87780F070DDFEF41C90EFC0E0BB8F3692F7D360BA180E1D4579FC1AC671454E413A8613 F40F9CDA8AEFEC06CE40F1DF6FAEBFAEB57AAF73898F869C6BD165B9A3A60C5942A48292B5805E 01897F3DC17253668A774D13E23C5D5D90BB6B8F60E89875B353A8FE0D03ECEC140EBB2B3BE613 907F32DE8F445CFDC60272E5EBC753BC2ED4CBEC34588879870277190FCFBEAAA6D81759C2CE36 6CE0EED2B8915F93BD1ABBA0613DD9E2EE93633EF81F4B36C29F4A24847104ACEC56CA46416884 462AE9C21D1A21D20125B71DC52D38989FBAF0A0A6EC1068E7C963B2B6894326A5E70AE420214F EDAB638988110066D741B301760451CEA275988C2270532D4A78712F28922011D564F12928B4BB 9484657DC0F2378F07A139C75843624CE599A261AFC6192D58F89F36556AFE32531138FA46B505 54898E65B82883BE97CC02B92B7C7D1979F799720345EE930BE3CBC3BA01CDC2311147AA768202 A59BD84F601A5FBF6F882DA51E7644D7B734D89555FFDECED4BD2B14DB3D3C57E0403680796446 3DC5C9D6427B591A00A82E2EE4DB81D533D52857A250E579F9C9D45109F06862E64564B5E18615 4B6AFF5AA065792AAD0D38340C26A0B7C7E4DC7F054A850C0BA6EC8F66535E5CE1758160CF83B3 CD1D0F7EFDA4B0D11E679C74386C2234505F7FB083578BE4D43C4922330EEFE114DAF7C58C0AB8 7E4F6C6511A1B311FB9FC645FD7199015B5491584D2E135C573206A96EC49B6F0BD7428755A69C 9D1DAE3978F70CF6F2B518C74B81908258509FC96282AAB0DEE885CD5D66B5A91BBBF74B08142A 827DA25A4F0FBC4E1BDB4952556B04F32DB3A8CE6873DA2EE081E81DC1D3C429BD76E62986CCBE D21F956E4F45F869E0E00FBFD1B17011439E6E0196C8A7726A96186634E51951B5DC1CC4F96850 9AF5DB930D892EA290C70EDCC65DD905D6AF9221AF3C6EE64E01FC3A37EB358A759DDE53CDDC74 B6937F1DA36B00174481A40AD8B6E9BA2F9BA1A15D80C560BF4A3CAB972DD12B2890C3BDEB06EB FE05BAB7E2BCDAFC641643B67D553AD78D5CC498B43A458C06E9A428307498EB76BD7096F2DEBD 2905AB09BC0E748239D90663C26A3FAA9347C32D44BEEA2DDECCA24825DD2A154E8A82282F4122 96D11C6E0CA8F28CCD52A3E0A9B442838BD6FE90A931C8A462A97759CC9EE21B47C44B2032E5B4 083750CA3483E688F67FBE91EAC9199D49963060712314618A725457FB71945C535BCD330A9D8D 850EA0EB723BE0A00F2C3A8E6C80660F59A84DE34A52F00725C945521ACFFFCE8FA1CBC2CA9F9C C98AB2987C636CFB83DB46B4B3A7F1CF4EECF6E08A3B94229B54CB34272829C4BC264E303DFA2B 170D5E7A66A7EE3C463502D5425AB0739F1DFF5FE9B751975E4379569580B641C7296DFEA54E7A 99A9478583A0D8DE565575DB2CD00B35D2BF82A5597F4134CD3F7A201C80DA9AF49EB8D9D049C2 5869843331F140753DAAF303592715A35751B4597F458F5BD9A894D8E2173E03C85853515E3D71 CDB51E7000279E462386A1DBAC817073DDD29CB89F211CD5FCEB9657C107041E605DDBBB7275F8 B084FBB48A233D826F9D3079F56BEA088092B8156B4C38ECCBAE22EDF9135E5E2DE147EAF1D562 2735F9FC9C5124149AEE31FD4B35CBBD848E81605EF9B89C0E116E4394195122D3F5D28A60CCD3 19A85D7EF24CFEA5AA946B8EE737786DFD5A6B2C1100F3F2DCABDEBC012CBC19AD314198536720 37233DA6D3B6AB83458179190D11FC866BD3343C9CB85381BBFE2226D612BCE91D13226F4AA348 C48D5F05D927518E5587BF7EEAE0B2E40F6D2F5847B25832970681DCDDE5A3DAB4E305DC7CCF1D 817F07975F4575D97355347E3AA2DA7A8B230B81673ABF1052EEE2F524D5330975E811FC32AF0F E8538EF37B67EDE2F2D521F45AEE885D379835E820C8EFFDDD7E3E381BF267E32E9E6DC40A1D36 D0068A698B970C492B79D5AE4C645286631FF56704053F81474FD546FC9498CDE9176F7483F9F1 7FF8654B0EAFC6352FF7070D969C8F7005389B7F465EF1B6C0A1329A2B18F577586CF4B9427D48 886B0AC61575474C87A37340B7EFC0090F3E489505EF51BA12B1394144F3895AABC6916DFA5C6A 4E8D07D3E351853A2E0370688E5E6000F5B751AFB8821C4C25DE80A9640ECC48B99E05C94E4932 D120A4893E85CC91CDFB5A7218C972A482914E5401ACFE7BFF59B4D8D5E5F563AEAE5E34B052A7 2ED5ED7854C32C20C933D68992DEAAD311F6DE5C03DD24B878F536560A2F43E5FC70452A39C7B0 AE56A0A559607EDC991BE7F571857A7F55FEDC84C679B9BE89401F504805BDDCC9CAA625B2111B C4815AC79A78AAEA643466199721879697A341639ED003B5FA52331D3A2AE25D8F20EACCBAF791 D62421A00937BFDDF444EB59D2F460AAFDF8BE9F82D5FD1D48F6712B908E5FA81345A567C18705 6944C722C55A0D418ABB1BC622EEC5D416F6F52BC188DD51405215AD6B75B04DBF4BC6D85F0618 FA111126E41351C3F7B0667F8FC08ED06342B2DB6201A1A63AB018B2FE5FD760366A9A420F56A6 C61B835F9AB9F385A81430F867146C8B01784534CC959126389D1CAFE10E3AF40DBE594B6B9219 8F50D9759E60519DE8AB4CC0224ED624A3AA9FC95AAFD676706448A9F05BF008095121314FD044 A3A350ABFD1CCCD5EB18DBD2EA71C3DB2F37066021E39F4E77CB1B155D05CE1FA00C8A59FF39A3 A16891235A599F95F9A62E6EE47839135A0750A2CB528F11EC47F0D4D3BA828501C9B76FDFE178 21F11814DEFDE3AB561ADA314060D7112BC8BF02E92793A3D864B83AEA78F8D49DF9AB07AC0762 229534C0288FBC00662E53035A037B1C9745195CFAB54D22032A16E7AE0B971CAC5A67FF0EDE11 E265B88805314BC7563CF177BABB367618A27734611D7B662DA407911EF2FEC47D74C482F7DF82 3960081466CECBF4BA94FC5AC8C9F91AC151FB1ECB78BA5D5607A1D59D34C18C83000F8507AB1F 1C44347FCA2BC27087A28F0F3B24BDD8E7A0DDCF782CBCED5DDA4565308E10062145895A9C437C CAED86458890311EDCDE2109233BF9ABCEF0535080D7C5A76D6E3BCE8210C7E89FB95E63CD8A76 FEA978AF5000DFE7C0E659B902503758736C6DB295B9368EE50F5F8CF3E200456B5B2087219150 294871F7B980800E59A5DE5973AB9ED52F7DBC7C433FD0E099D3E3EEF6DF7D77E40D1C8B34C117 588ADBBD7A29AB4805A87C13CE93A65854DFDA87321ECF7D34E72C193365B632B455F8A2916BD1 E63441A633D144C254E3FD89FE2884840146B4C992A07BE6A0FCEEB6AE9B0234D234645D73C064 EAFEDA1EB7A9DE6661D31226A6F54BC9510DF6F64F7200CEC5EAF90357716E7C246D47C04E0906 98C5F6AC446DC6107E6342FE8B746C0FFA058FBBCA0730CFB20A367ED10661670C1618A4D467DC 2A7E87894DE0D5392B3F0DE6582901693C28568D2253D514A3FACD1B063B02A5F8A19C1D6DFBAE CC79435F694E914014DEFC5553A5984993154997E63768DD7BC462BDF6D1A8B28DF568B22FF460 087163AEEC37F0BDDBBA4C30322AD71922AC802DD491207E6A6C255F50EEB0C492EC86AFED9040 B068671FE4A1E66AF15D3D976C7267F3EEE19462487772087ABF36700B4821D2DB5193BBEFCE82 BF67F7034972A708E93C55E0F7A52EAEE47E68FDC6F1BC49B9370F28DAE122D13CB2CBCB55933F A27291003E862FB0C7E20A0F979DFD8BA918322F6CD597809F9E05DD210F7996F314B65F54FD7B F453F15CCBEB2CD5E53535261E696EB73F2698D1159076D0EAE35FFB1FB53F98808ED2325B2CC7 9D90772C15273EE50294AC931626EC573BED7CCE2D713328962528EE0F00FADB1C1ED8B302F24A 40F9A22D1D6411EC669670ADF93C4C67D8520109FDE9F64CB0382842C88845267528F57AB7E408 9EDE614E79799D08D3D01378AE9D42D7601D821C9C5BFB77EEFF37B634D2698BDC11CB60192B6B 4FFDEE834EDEA99CCCB760D3E7548E6810FE300596C246AE56DCC6BA8132AE3779ECD5ECFA6963 F9B5C4B9AD8B6C480BB184FE31EF0F8DD3ADAA96AFBFA250FCBFEB529239AD2A524B3C8AA1C2C2 7ED016E8EE24B355BA84D1D0AC6AF00B0A230578609A3F09639D2CA7175710FE9D455A58A6982B 7B7FCA52BB5490FBAA064D1C506C9598D88B5CB330C97F434BD1EF060ADC21B9F6ED9FB7A7E604 20FA1B481881C73B1DEEDA0A7E197B8D38EEE68CD8D442D083772FE2BA1F1C07A57D5B67BD8230 80BF438089A4D6C311D421F5F16C35B3207649CC0433AEE4987E3AB5698D55309B5F5C8B95332C 77157E3309EDB4954613428AE9DA6686799ABCE483FCFA8C060F0614995E01FD14A6189AB61A0F 7AC9465BE297F053E85AAD0EFD921502269D01FA6D5ADAD672F3D48C5D4EDEEA65E53E03A24AA9 E78660AFF7942E7F23E3754582CB2976FB65997FF35582FF83FE9BF43CE5CA20AE5EB62CA819D9 B63ABE39EA3A13AC163F64A55B4E840B12FEED5BF447E3CA1FD61E6FB51D6F7B3176F697491217 306EC21CC462AEFA069C9432AFAFDE4D586D5EF8DD4E49882CD701C4F4FBDBF42E370AE7F332AB E22DDB2FA70D17B0E053BD6332A1B51840A6C18760A46EDB9C8933039C8B724FBA4C4D62B98876 71F94505D1242067281063F91A7DE032FCE95DA4B54C32B46B762CC927667306101A7186DA78BB BFF306C62708B92D76D2225B1FACC18157268623387B5D80FF9E394E3DB68D5404AE3CAF3A8654 7704EEE75E7BCBC9A96610D96E96C0CEC85785FC7D54BF035D0E03E6B1ACE9691D7DD71B607B9D C37DC020E9B5D4216AA991C5022AC52A4637FCA79DC21DC1FCBD5BA4B28B591F69CEFD0D99E35F C568550A5E11B32BD59BE83149B82FC840C99267AA84AF41FC56D1C4F7F6365B65DBED15163D55 9A95630AF5005C7FEF23EE87208AAE88AB3CA22FEAF682088FB1F2F78027FDED141D161183FD67 5E16ECE34A9664C1373C2793C35080519D0BBE2D9B98BEF67D2716B4036A25274B4370AD209164 BEAC0BFFBCC3F6B2956AEF76143644485280FD50462B63F324A992F3A5B187321107BEC7A301C0 4338312EA32DCABA2C13A6ADA387B668A45743B4D7C02F2BFFC69F49AFB429434EA529B04EB8B7 4596D90FE74AE32F57CEC0433922B00236C189FFCD8A1FDD896CCC957DFA2EEABB23BD8E5A428F FDC06F4F75C3222DC161472687547B173F632D15BACE92A07A0A71DCCE2B8EB739EFFEA173E57C 4DF651FA936221DABBDB3B8AE5C30D595C33DCFC485EF2721743A6957E26A79A97EFD24BE5AC7F D6792166AD1F09A8590F5871E74B2215E9012BF05DC89BEF6A2FFBA06BC619A08B14D6679877A1 10165E943223B0DDC672C591F26D6C865B78B59703C3C977FFD605CB241C35FA1FD928A4A4F11C 052EA00B2FC0CEAD4BD9041899EE135DE98A260518AC927508ADD78D7A6D8049C88B42241D25CA 5DF0550706C3671B2DB3D848C3B94CC77D7FC2D157E37B8D4780B6B7F3B04502F3167D8D5B99A4 6B63151FA7FC1FE52BD66ACF20DB58A7A092623E63FF6F7C7D0001AB09059A5CB6D79504900589 A349E8D19E76F6FBEA194D18CB6526691C7B66E219092FCB73A4F7807E6BFD82510687A50BFA3C EEB4F8818B11A8B9F7B71676C5B44078996994DA808DC39D3CB6A66B476FA2ED6390B7181A591D 171DE548152A5CC5B71F5F9DCED5B648AEF57E2B3644909577EA607E49C8D0105DB7FC57FA1A2D E0105EADBF35AA385C972F9CF07D379454FBFB1EAC4B573498C10B2E98C3FB6F1483A123237B96 0BAA3A3CDC0E9327F0FCABF72E8AC7DB04E22CDAA0F6EE108564565AEAC4A4DA8328F30AA878DD B35D6AB16FC49D928066ED24C583434447AFBE2E4D22848A516862207480EAF650624943925E0C 351A6407ABE0BF04E36C87BE715B11FE53B8A13AB4669B7B2238D0B295D60028D1111A5AFE23AC E77C59415C466042B93790A8055FD8C39B262848BBCEE84DA425462871EA73BFC927DC4DAF9336 E13B1BC99887E8C1D8721311B5396209A634F3A1F91D51EB7B28F0A827A50688ED60370F6BF3EC A867BB995B125BAB4203DE9E26DFC0D3D8E91D3E749AA0407C6A74C86E98FDF8A314B201E1EE0C 98015360074379F70367DE7CEE75864C9789533ECEBE1323C12261A8622C5666C932177CFDCACD 2D494F1741EC983E51CE4E3A63AE6FD282DA64A32CC3B2F55549080C7A190BFDD2C2393C675DE4 90C79A325DCC04D14E0445C218AAFA0E54A305A889DBE613D4F28FB08253892A0D673908479B87 E9D8E13F467B7F9EBCD8E5E16D7CD3358C71CECCD08C6B8ACA8525657D37560BF2221F91258EF4 E6B70118BD1CB1F4EB421C4C32C76437340EA398E22351CEA31D250E46F946D44D97C2B3DE06F8 D8003381600E2E2C28AFBADC25DC94224AFAD0D7D951609BB2478C476085C01AA601F3AFFED544 F251D5A49BD263D64F4FEFB0803F162BD5FE1082FA2949BA8987AFFA1D9A7A4EF28BFCAFFD3311 0E1A1A2A22C76734DF6CC30E3C4662DFAFB32DF55DB12D138148435A6F7ADB4ACC4F4124EF772A A63D5F65490E9763FFD66C6153F5B0FEF1A307D6A9753102CE51DA88E2EF7275FFFD2A7B4F81E9 DF549938193AB7A58D5C237D669ACF27DFA35744F7622F8D54B5B54AA31D9403841D4C5D193D87 E60622E18C2D7E333AD4CB2DB27DEE813D9902D17DD0F2D3BDC8B340DFE9C8D34B993CC2CC91BD 47B4861809902E11197967922FC625989AC6F4BA0D48166F3F4B6C6C47D3B9A932F3D47A8613F3 6329406BF5ADEE519002394FB288D3A8AC3DCD5C37270AC7F5C5CDE46BE5C2A103FD468FEBC0F5 180143DB4312076FB062CE88DC373B5F120C591B9C09B9E3E1B26F52A48339AE70F729BA02977A B60666637D9FF9287DB4CC52BD5C7B2D4F038E5C927B97B54F611396E2211514A8684A02D5DB1F DE728DB58AE1BB7253740349771118D2D33211D2ED7BBEB97BB4776666F6A2AC7B54A1E2DB79D2 A9DE31745745CB39BDEE3E7CF425C27F86CFA89F825A09F9C7027E8DF7A773497690F328D22FF5 A5CB2821623A570C29D03081E9DCE770F3E7F5B7377A1BC3F52B383EA0CB1C1BDC00E67AE90F72 9DC77450407C0A9D0ECB2CE16C91CC3C7D487457800654F86BA7A8E26A25B78204CC7F58BBF69C 5C406BA012563A4379506C28A39538F9A5D57BD197443A02A9D3C67149D654FF12FC6E05612981 7F7236BF90FA626FB91D49C48D824248EABD764EB3C20634D56BDC2E170A814567D278F7AFB96B F6AEF216C0B42AAF85AE299752C50E6D2963FA5DB384FD110868D43DA804FDB9D0CA26BBC8CD72 EFAC451FBAF4BB0B44C675DD4E0B4AD8D6149DAE44DC4EC36942CE1876C8602E3F97CD6E18BD0B 5BCCF7B1773619FC8AC3B3D4958F71E5D2C631C6B17EEE7ADCBA30CA0E30B538249113223FA987 4D4B294563B9F42D9D259374F28A8D8A654F26D7BFD8667CCBC43F75B61C2F5CF8D7E06642E93D 76554642B7666B7905D6859F79DC080CB5574D03A072DB0D47AB82461DF6638C77234A3F97428F D2FC973687786BCF1D2F65AABAF55C257914247AEA0B3AF17A867C0CF1E5A6883D68680343CC5F 3604DC8E1E7A9DAB9CFA316A14D4CF7A3A60CA56E947AE632762B2303C0EDAF9B3AA206191730D 18B522FCD29D036AA4E6540F6A0DA836638A2EACE334B232199F61B357B10F4322A1F58F249101 CB1399E5E60483F12A6008F8FFB52709F34136D93902FE367A01419F79A4D4DEDBBAE63741526D 3D9EB7BFB4332C1775E2F0A05A4D7B203C2816F30081A67440D09D1FF94DDB3B7BB91B63703581 A696ECEB393963FA9199AB61A3F449061E048FA2C1F91897C5A60A4D30D0C276DE88EA143BA4FC 545FFC8F0B0950A38AAD126D73DA6BBDBDB480C3AFF4D2C7657A33652D5728E1866DB82B8F1A8A 72235DAB477C38ECFCCD0CDBB77D30A0436FDDC1D70426C0C5B408A4ADD039CC2B5750B7BB5E07 CC56039DB7FF3298151718E167CD482E88AE498B2D89C79C572FCE5ECEA3BBFE5603FD7AF6F4DF 2C06BD8EF8501B52E8CBFB5481CA45CBAE44D87D455DFB6F030FBC0938EDFF80592B68390452F2 42584D9C529BBAA2615F9A493BDB3C4BCD99422B69FB658ADA813AE39E447151F9312A005AB210 D9FFB508C7A036BFA34C7264CFC1B92929C7CD892CD8BE48D388545B8CE7A79F70D0F1B852625D F331D75342E9EC57219DE4E61BFFEB066D82DC6256892E89B25BCE034F7F6FF09D7DC8ABBC8739 3B70FDAB372D2FDFC51902A6E7FBE5DF3F41A91DAFA35D9A99A18DCD9E9D9050CA9D6FD417C9B8 DE3C0648F8458BA2E0ABCEE10E759C97F019D1A1C8E1CC9EC8A6680C2566F42E478EB1F5706435 16EBAF85E4F9E972BA3FA6D20B8BD1734229563A1ADA6D4D1857257EB760050F4FD997090653CA 7771430101EEE3BCA1EA8E5F230F1B54E25A50458A1F7EBC35AEC36A88E4E345EF4CD9F97978EC E8F3C53ABD56FD3DB6C71206DEB0058509F24D0EB4C68BCFAD5A773EFD04F5472984000960F67E 261B9152A176B230EB447633653ED0CBD3F50B214773DB454E89625BE27B7B75C93330E1F782BE EA101988B04AEF3601BA7FE868F614035647349D97F9F1AA598FD808885D91F5E24FE348015E46 D80FCC9E62 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %!PS-Adobe-2.0 %%Version: 0.1 %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Version 3.3.2 drawing procedures for dpost. Automatically pulled in when % needed. % /inpath false def /savematrix matrix def /Dl { inpath {pop pop neg lineto} {newpath neg moveto neg lineto stroke} ifelse } bind def /De { /y1 exch 2 div def /x1 exch 2 div def /savematrix savematrix currentmatrix def neg exch x1 add exch translate x1 y1 scale 0 0 1 0 360 inpath {1 0 moveto arc savematrix setmatrix} {newpath arc savematrix setmatrix stroke} ifelse } bind def /Da { /dy2 exch def /dx2 exch def /dy1 exch def /dx1 exch def dy1 add neg exch dx1 add exch dx1 dx1 mul dy1 dy1 mul add sqrt dy1 dx1 neg atan dy2 neg dx2 atan inpath {arc} {newpath arc stroke} ifelse } bind def /DA { /dy2 exch def /dx2 exch def /dy1 exch def /dx1 exch def dy1 add neg exch dx1 add exch dx1 dx1 mul dy1 dy1 mul add sqrt dy1 dx1 neg atan dy2 neg dx2 atan inpath {arcn} {newpath arcn stroke} ifelse } bind def /Ds { /y2 exch def /x2 exch def /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 5 x1 mul add 6 div y0 5 y1 mul add -6 div x2 5 x1 mul add 6 div y2 5 y1 mul add -6 div x1 x2 add 2 div y1 y2 add -2 div inpath {curveto} {newpath x0 x1 add 2 div y0 y1 add -2 div moveto curveto stroke} ifelse } bind def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def %%Patch from lp %%EndPatch from lp setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 /LucidaSans-Demi f (Plumbing and Other Utilities) 1997 1230 w 10 /LucidaSans-Italic f (Rob Pike) 2674 1470 w 10 /LucidaSansUnicode00 f (Bell Laboratories) 2476 1650 w (Murray Hill, New Jersey 07974) 2146 1770 w 10 /LucidaSans-Italic f (ABSTRACT) 2626 2150 w 10 /LucidaSansUnicode00 f (Plumbing) 1080 2446 w (is) 1568 2446 w (a) 1681 2446 w (new) 1769 2446 w (mechanism) 1997 2446 w (for) 2582 2446 w (inter-process) 2754 2446 w (communication) 3445 2446 w (in) 4225 2446 w (Plan) 4350 2446 w (9,) 4585 2446 w (specifically) 1080 2566 w (the) 1673 2566 w (passing) 1889 2566 w (of) 2322 2566 w (messages) 2480 2566 w (between) 3015 2566 w (interactive) 3482 2566 w (programs) 4047 2566 w (as) 4574 2566 w (part) 1080 2686 w (of) 1328 2686 w (the) 1478 2686 w (user) 1685 2686 w (interface.) 1947 2686 w (Although) 2487 2686 w (plumbing) 2983 2686 w (shares) 3499 2686 w (some) 3868 2686 w (properties) 4182 2686 w (with) 1080 2806 w (familiar) 1323 2806 w (notions) 1728 2806 w (such) 2128 2806 w (as) 2391 2806 w (cut) 2534 2806 w (and) 2721 2806 w (paste,) 2938 2806 w (it) 3269 2806 w (offers) 3372 2806 w (a) 3692 2806 w (more) 3784 2806 w (general) 4072 2806 w (data) 4470 2806 w (exchange mechanism without imposing a particular user interface.) 1080 2926 w (The) 1080 3082 w (core) 1298 3082 w (of) 1544 3082 w (the) 1679 3082 w (plumbing) 1871 3082 w (system) 2371 3082 w (is) 2748 3082 w (a) 2865 3082 w (program) 2957 3082 w (called) 3410 3082 w (the) 3730 3082 w 10 /LucidaSans-Italic f (plumber) 3922 3082 w 10 /LucidaSansUnicode00 f (,) 4329 3082 w (which) 4399 3082 w (handles) 1080 3202 w (all) 1510 3202 w (messages) 1675 3202 w (and) 2202 3202 w (dispatches) 2434 3202 w (and) 3003 3202 w (reformats) 3234 3202 w (them) 3757 3202 w (according) 4056 3202 w (to) 4582 3202 w (configuration) 1080 3322 w (rules) 1763 3322 w (written) 2036 3322 w (in) 2409 3322 w (a) 2534 3322 w (special-purpose) 2623 3322 w (language.) 3447 3322 w (This) 3989 3322 w (approach) 4229 3322 w (allows) 1080 3442 w (the) 1416 3442 w (contents) 1605 3442 w (and) 2056 3442 w (context) 2270 3442 w (of) 2669 3442 w (a) 2801 3442 w (piece) 2890 3442 w (of) 3179 3442 w (data) 3311 3442 w (to) 3555 3442 w (define) 3687 3442 w (how) 4023 3442 w (it) 4256 3442 w (is) 4355 3442 w (han\255) 4468 3442 w (dled.) 1080 3562 w (Unlike) 1393 3562 w (with) 1734 3562 w (drag) 1977 3562 w (and) 2236 3562 w (drop) 2454 3562 w (or) 2720 3562 w (cut) 2860 3562 w (and) 3048 3562 w (paste,) 3266 3562 w (the) 3599 3562 w (user) 3793 3562 w (doesn) 4042 3562 w 10 /LucidaSansUnicode20 f (\031) 4335 3562 w 10 /LucidaSansUnicode00 f (t) 4367 3562 w (need) 4443 3562 w (to) 1080 3682 w (deliver) 1223 3682 w (the) 1594 3682 w (data;) 1794 3682 w (the) 2081 3682 w (contents) 2280 3682 w (of) 2741 3682 w (a) 2883 3682 w (plumbing) 2982 3682 w (message,) 3489 3682 w (as) 3989 3682 w (interpreted) 4139 3682 w (by the plumbing rules, determine its destination.) 1080 3802 w (The) 1080 3958 w (plumber) 1318 3958 w (has) 1782 3958 w (an) 2008 3958 w (unusual) 2183 3958 w (architecture:) 2624 3958 w (it) 3292 3958 w (is) 3416 3958 w (a) 3554 3958 w (language-driven) 3667 3958 w (file) 4529 3958 w (server.) 1080 4078 w (This) 1483 4078 w (design) 1730 4078 w (has) 2095 4078 w (distinct) 2305 4078 w (advantages.) 2706 4078 w (It) 3360 4078 w (makes) 3468 4078 w (plumbing) 3823 4078 w (easy) 4327 4078 w (to) 4582 4078 w (add) 1080 4198 w (to) 1308 4198 w (an) 1453 4198 w (existing,) 1617 4198 w (Unix-like) 2083 4198 w (command) 2581 4198 w (environment;) 3106 4198 w (it) 3796 4198 w (guarantees) 3909 4198 w (uni\255) 4494 4198 w (form) 1080 4318 w (handling) 1376 4318 w (of) 1863 4318 w (inter-application) 2024 4318 w (messages;) 2904 4318 w (it) 3474 4318 w (off-loads) 3603 4318 w (from) 4118 4318 w (those) 4413 4318 w (applications) 1080 4438 w (most) 1714 4438 w (of) 2005 4438 w (the) 2152 4438 w (work) 2356 4438 w (of) 2642 4438 w (extracting) 2789 4438 w (and) 3329 4438 w (dispatching) 3559 4438 w (messages;) 4173 4438 w (and it works transparently across a network.) 1080 4558 w 10 /LucidaSans-Demi f (Introduction) 720 4918 w 10 /LucidaSansUnicode00 f (Data) 720 5074 w (moves) 977 5074 w (from) 1325 5074 w (program) 1592 5074 w (to) 2043 5074 w (program) 2177 5074 w (in) 2629 5074 w (myriad) 2756 5074 w (ways.) 3125 5074 w (Command-line) 3460 5074 w (arguments,) 4226 5074 w (shell) 4813 5074 w (pipe) 720 5194 w (lines,) 966 5194 w (cut) 1260 5194 w (and) 1445 5194 w (paste,) 1660 5194 w (drag) 1989 5194 w (and) 2245 5194 w (drop,) 2460 5194 w (and) 2755 5194 w (other) 2970 5194 w (user) 3262 5194 w (interface) 3507 5194 w (techniques) 3965 5194 w (all) 4528 5194 w (provide) 4675 5194 w (some form of interprocess communication.) 720 5314 w (Then) 2880 5314 w (there) 3156 5314 w (are) 3441 5314 w (tricks) 3626 5314 w (associated) 3926 5314 w (with) 4468 5314 w (special) 4706 5314 w (domains,) 720 5434 w (such) 1207 5434 w (as) 1474 5434 w (HTML) 1621 5434 w (hyperlinks) 1938 5434 w (or) 2482 5434 w (the) 2625 5434 w (heuristics) 2821 5434 w (mail) 3331 5434 w (readers) 3578 5434 w (use) 3982 5434 w (to) 4192 5434 w (highlight) 4330 5434 w (URLs) 4804 5434 w (embedded) 720 5554 w (in) 1291 5554 w (mail) 1440 5554 w (messages.) 1705 5554 w (Some) 2303 5554 w (systems) 2626 5554 w (provide) 3076 5554 w (implicit) 3500 5554 w (ways) 3919 5554 w (to) 4213 5554 w (automate) 4370 5554 w (the) 4885 5554 w (attachment) 720 5674 w (of) 1316 5674 w (program) 1465 5674 w (to) 1932 5674 w (data) 2081 5674 w 10 /LucidaSansUnicode20 f (\024) 2291 5674 w 10 /LucidaSansUnicode00 f (the) 2391 5674 w (best) 2596 5674 w (known) 2853 5674 w (examples) 3223 5674 w (are) 3737 5674 w (probably) 3939 5674 w (the) 4416 5674 w (resource) 4621 5674 w (forks) 720 5794 w (in) 1005 5794 w (MacOS) 1133 5794 w (and) 1494 5794 w (the) 1711 5794 w (file) 1903 5794 w (name) 2091 5794 w (extension) 2394 5794 w 10 /LucidaSansUnicode20 f (\030) 2906 5794 w 10 /LucidaSansUnicode00 f (associations) 2938 5794 w 10 /LucidaSansUnicode20 f (\031) 3531 5794 w 10 /LucidaSansUnicode00 f (in) 3600 5794 w (Microsoft) 3728 5794 w (Windows) 4220 5794 w 10 /LucidaSansUnicode20 f (\024) 4649 5794 w 10 /LucidaSansUnicode00 f (but) 4749 5794 w (in) 4949 5794 w (practice humans must too often carry their data from program to program.) 720 5914 w (Why) 720 6070 w (should) 954 6070 w (a) 1316 6070 w (human) 1405 6070 w (do) 1773 6070 w (the) 1931 6070 w (work?) 2120 6070 w (Usually) 2465 6070 w (there) 2846 6070 w (is) 3133 6070 w (one) 3248 6070 w (obvious) 3462 6070 w (thing) 3876 6070 w (to) 4163 6070 w (do) 4296 6070 w (with) 4455 6070 w (a) 4695 6070 w (piece) 4785 6070 w (of) 720 6190 w (data,) 852 6190 w (and) 1128 6190 w (the) 1342 6190 w (data) 1530 6190 w (itself) 1773 6190 w (suggests) 2045 6190 w (what) 2510 6190 w (this) 2774 6190 w (is.) 2986 6190 w (Resource) 3163 6190 w (forks) 3637 6190 w (and) 3918 6190 w (associations) 4131 6190 w (speak) 4757 6190 w (to this issue directly, but statically and narrowly and) 720 6310 w (with) 3290 6310 w (little) 3528 6310 w (opportunity) 3778 6310 w (to) 4379 6310 w (control) 4510 6310 w (the) 4885 6310 w (behavior.) 720 6430 w (Mechanisms) 1249 6430 w (with) 1891 6430 w (more) 2141 6430 w (generality,) 2437 6430 w (such) 2993 6430 w (as) 3264 6430 w (cut) 3415 6430 w (and) 3610 6430 w (paste) 3835 6430 w (or) 4142 6430 w (drag) 4289 6430 w (and) 4555 6430 w (drop,) 4780 6430 w (demand too much manipulation by the user and are \(therefore\) too error-prone.) 720 6550 w (We) 720 6706 w (want) 899 6706 w (a) 1167 6706 w (system) 1259 6706 w (that,) 1636 6706 w (given) 1896 6706 w (a) 2194 6706 w (piece) 2286 6706 w (of) 2578 6706 w (data,) 2713 6706 w (hands) 2992 6706 w (it) 3322 6706 w (to) 3425 6706 w (the) 3560 6706 w (appropriate) 3752 6706 w (application) 4353 6706 w (by) 4925 6706 w (default) 720 6826 w (with) 1104 6826 w (little) 1354 6826 w (or) 1616 6826 w (no) 1763 6826 w (human) 1931 6826 w (intervention,) 2310 6826 w (while) 2971 6826 w (still) 3269 6826 w (permitting) 3489 6826 w (the) 4043 6826 w (user) 4243 6826 w (to) 4498 6826 w (override) 4641 6826 w (the defaults if desired.) 720 6946 w (The) 720 7102 w (plumbing) 940 7102 w (system) 1442 7102 w (is) 1821 7102 w (an) 1940 7102 w (attempt) 2096 7102 w (to) 2513 7102 w (address) 2650 7102 w (some) 3069 7102 w (of) 3369 7102 w (these) 3507 7102 w (issues) 3809 7102 w (in) 4149 7102 w (a) 4280 7102 w (single,) 4375 7102 w (coher\255) 4736 7102 w (ent,) 720 7222 w (central) 983 7222 w (way.) 1390 7222 w (It) 1714 7222 w (provides) 1856 7222 w (a) 2348 7222 w (mechanism) 2479 7222 w (for) 3107 7222 w (formatting) 3322 7222 w (and) 3911 7222 w (sending) 4166 7222 w (arbitrary) 4626 7222 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /LucidaSansUnicode00 f (\255 2 \255) 2783 480 w (messages) 720 840 w (between) 1231 840 w (applications,) 1674 840 w (typically) 2327 840 w (interactive) 2760 840 w (programs) 3301 840 w (such) 3804 840 w (as) 4066 840 w (text) 4209 840 w (editors,) 4437 840 w (web) 4844 840 w (browsers,) 720 960 w (and) 1248 960 w (the) 1483 960 w (window) 1693 960 w (system,) 2117 960 w (under) 2544 960 w (the) 2883 960 w (control) 3092 960 w (of) 3488 960 w (a) 3640 960 w (central) 3749 960 w (message-handling) 4134 960 w (server) 720 1080 w (called) 1072 1080 w (the) 1410 1080 w 10 /LucidaSans-Italic f (plumber) 1620 1080 w 10 /LucidaSansUnicode00 f (.) 2027 1080 w (Interactive) 2146 1080 w (programs) 2706 1080 w (provide) 3228 1080 w (application-specific) 3649 1080 w (connec\255) 4664 1080 w (tions) 720 1200 w (to) 998 1200 w (the) 1134 1200 w (plumber,) 1326 1200 w (triggering) 1802 1200 w (with) 2320 1200 w (minimal) 2562 1200 w (user) 2989 1200 w (action) 3236 1200 w (the) 3568 1200 w (transfer) 3760 1200 w (of) 4177 1200 w (data) 4312 1200 w (or) 4559 1200 w (control) 4698 1200 w (to) 720 1320 w (other) 854 1320 w (programs.) 1148 1320 w (The) 1716 1320 w (result) 1934 1320 w (is) 2247 1320 w (similar) 2364 1320 w (to) 2728 1320 w (a) 2863 1320 w (hypertext) 2955 1320 w (system) 3457 1320 w (in) 3834 1320 w (which) 3962 1320 w (all) 4280 1320 w (the) 4430 1320 w (links) 4622 1320 w (are) 4888 1320 w (implicit,) 720 1440 w (extracted) 1154 1440 w (automatically) 1653 1440 w (by) 2340 1440 w (examining) 2496 1440 w (the) 3046 1440 w (data) 3242 1440 w (and) 3493 1440 w (the) 3714 1440 w (user) 3910 1440 w 10 /LucidaSansUnicode20 f (\031) 4120 1440 w 10 /LucidaSansUnicode00 f (s) 4152 1440 w (actions.) 4244 1440 w (It) 4695 1440 w (obvi\255) 4802 1440 w (ates) 720 1560 w (cut) 975 1560 w (and) 1181 1560 w (paste) 1418 1560 w (and) 1737 1560 w (other) 1974 1560 w (such) 2288 1560 w (hand-driven) 2571 1560 w (interprocess) 3231 1560 w (communication) 3887 1560 w (mecha\255) 4690 1560 w (nisms.) 720 1680 w (Plumbing delivers the goods to the right place automatically.) 1102 1680 w 10 /LucidaSans-Demi f (Overview) 720 1920 w 10 /LucidaSansUnicode00 f (The) 720 2076 w (plumber) 943 2076 w (is) 1392 2076 w (implemented) 1514 2076 w (as) 2193 2076 w (a) 2341 2076 w (Plan) 2438 2076 w (9) 2681 2076 w (file) 2786 2076 w (server) 2979 2076 w ([Pike93];) 3318 2076 w (programs) 3782 2076 w (send) 4291 2076 w (messages) 4565 2076 w (by) 720 2196 w (writing) 881 2196 w (them) 1264 2196 w (to) 1558 2196 w (the) 1702 2196 w (plumber) 1903 2196 w 10 /LucidaSansUnicode20 f (\031) 2310 2196 w 10 /LucidaSansUnicode00 f (s) 2342 2196 w (file) 2439 2196 w 10 /LucidaTypewriter f (/mnt/plumb/send) 2636 2196 w 10 /LucidaSansUnicode00 f (,) 3716 2196 w (and) 3794 2196 w (receive) 4019 2196 w (messages) 4405 2196 w (by) 4925 2196 w (reading) 720 2316 w (them) 1122 2316 w (from) 1404 2316 w 10 /LucidaSans-Italic f (ports) 1670 2316 w 10 /LucidaSansUnicode00 f (,) 1923 2316 w (which) 1989 2316 w (are) 2304 2316 w (other) 2490 2316 w (plumber) 2781 2316 w (files) 3222 2316 w (in) 3459 2316 w 10 /LucidaTypewriter f (/mnt/plumb) 3585 2316 w 10 /LucidaSansUnicode00 f (.) 4305 2316 w (For) 4404 2316 w (example,) 4595 2316 w 10 /LucidaTypewriter f (/mnt/plumb/edit) 720 2436 w 10 /LucidaSansUnicode00 f (is) 1835 2436 w (by) 1950 2436 w (convention) 2100 2436 w (the) 2668 2436 w (file) 2858 2436 w (from) 3044 2436 w (which) 3311 2436 w (a) 3627 2436 w (text) 3717 2436 w (editor) 3943 2436 w (reads) 4265 2436 w (messages) 4565 2436 w (requesting it to open and display a file for editing.) 720 2556 w (\(See Figure 1.\)) 3234 2556 w 1188 3042 540 360 De (ProgramA) 1220 3062 w 1188 3762 540 360 De (ProgramB) 1225 3782 w 1188 4482 540 360 De (ProgramC) 1220 4502 w 2196 3762 2556 3762 Dl 2484 3780 2556 3762 Dl 2484 3744 2556 3762 Dl 10 /LucidaTypewriter f (send) 2196 3722 w 1728 3042 1872 3042 Dl 1800 3060 1872 3042 Dl 1800 3024 1872 3042 Dl 1872 3042 1872 3042 2016 3042 Ds 1872 3042 2016 3042 2016 3762 Ds 2016 3042 2016 3762 2196 3762 Ds 2016 3762 2196 3762 2196 3762 Ds 2124 3780 2196 3762 Dl 2124 3744 2196 3762 Dl 1728 3762 1872 3762 Dl 1800 3780 1872 3762 Dl 1800 3744 1872 3762 Dl 1872 3762 2196 3762 Dl 2124 3780 2196 3762 Dl 2124 3744 2196 3762 Dl 1728 4482 1872 4482 Dl 1800 4500 1872 4482 Dl 1800 4464 1872 4482 Dl 1872 4482 1872 4482 2016 4482 Ds 1872 4482 2016 4482 2016 3762 Ds 2016 4482 2016 3762 2196 3762 Ds 2016 3762 2196 3762 2196 3762 Ds 2124 3780 2196 3762 Dl 2124 3744 2196 3762 Dl 2556 4122 2556 3402 Dl 2556 3402 3096 3402 Dl 3096 3402 3096 4122 Dl 3096 4122 2556 4122 Dl 10 /LucidaSansUnicode00 f (plumber) 2623 3782 w 3096 3762 3672 3762 Dl 3600 3780 3672 3762 Dl 3600 3744 3672 3762 Dl 10 /LucidaTypewriter f (image) 3204 3722 w 3672 3762 4032 3762 Dl 3960 3780 4032 3762 Dl 3960 3744 4032 3762 Dl 4032 3762 540 360 De 10 /LucidaSansUnicode00 f (Viewer) 4140 3782 w 4032 3330 540 360 De (Browser) 4110 3350 w 4032 2898 540 360 De (Editor) 4160 2918 w 4032 4194 540 360 De (Faces) 4169 4214 w 4032 4626 540 360 De (...) 4254 4646 w 3096 3474 3672 3474 Dl 3600 3492 3672 3474 Dl 3600 3456 3672 3474 Dl 10 /LucidaTypewriter f (edit) 3240 3434 w 3672 3474 3672 3474 3780 3474 Ds 3672 3474 3780 3474 3780 2970 Ds 3780 3474 3780 2970 4032 2898 Ds 3780 2970 4032 2898 4032 2898 Ds 3967 2935 4031 2898 Dl 3957 2900 4031 2898 Dl 3096 3618 3672 3618 Dl 3600 3636 3672 3618 Dl 3600 3600 3672 3618 Dl (web) 3276 3578 w 3672 3618 3672 3618 3888 3618 Ds 3672 3618 3888 3618 3888 3402 Ds 3888 3618 3888 3402 4032 3330 Ds 3888 3402 4032 3330 4032 3330 Ds 3975 3378 4031 3330 Dl 3959 3345 4031 3330 Dl 3096 3906 3672 3906 Dl 3600 3924 3672 3906 Dl 3600 3888 3672 3906 Dl (newmail) 3132 3866 w 3672 3906 3672 3906 3888 3906 Ds 3672 3906 3888 3906 3888 4122 Ds 3888 3906 3888 4122 4032 4194 Ds 3888 4122 4032 4194 4032 4194 Ds 3959 4178 4031 4193 Dl 3975 4145 4031 4193 Dl 3096 4050 3672 4050 Dl 3600 4068 3672 4050 Dl 3600 4032 3672 4050 Dl (...) 3276 4010 w 3672 4050 3672 4050 3780 4050 Ds 3672 4050 3780 4050 3780 4554 Ds 3780 4050 3780 4554 4032 4626 Ds 3780 4554 4032 4626 4032 4626 Ds 3957 4623 4031 4625 Dl 3967 4588 4031 4625 Dl 9 /LucidaSansUnicode00 f (Figure) 970 5040 w (1.) 1277 5040 w (The) 1397 5040 w (plumber) 1594 5040 w (controls) 1995 5040 w (the) 2383 5040 w (flow) 2556 5040 w (of) 2773 5040 w (messages) 2895 5040 w (between) 3357 5040 w (applications.) 3756 5040 w (Programs) 4376 5040 w (write) 4825 5040 w (to) 970 5160 w (the) 1108 5160 w (file) 1297 5160 w 9 /LucidaTypewriter f (send) 1482 5160 w 9 /LucidaSansUnicode00 f (and) 1791 5160 w (receive) 2003 5160 w (on) 2358 5160 w 9 /LucidaSansUnicode20 f (\030) 2518 5160 w 9 /LucidaSansUnicode00 f (ports) 2547 5160 w 9 /LucidaSansUnicode20 f (\031) 2775 5160 w 9 /LucidaSansUnicode00 f (of) 2853 5160 w (various) 2990 5160 w (names) 3356 5160 w (representing) 3691 5160 w (services) 4294 5160 w (such) 4691 5160 w (as) 4944 5160 w 9 /LucidaTypewriter f (edit) 970 5280 w 9 /LucidaSansUnicode00 f (or) 1262 5280 w 9 /LucidaTypewriter f (web) 1386 5280 w 9 /LucidaSansUnicode00 f (.) 1581 5280 w (Although) 1672 5280 w (the) 2105 5280 w (figure) 2277 5280 w (doesn) 2568 5280 w 9 /LucidaSansUnicode20 f (\031) 2832 5280 w 9 /LucidaSansUnicode00 f (t) 2861 5280 w (illustrate) 2927 5280 w (it,) 3343 5280 w (some) 3464 5280 w (programs) 3732 5280 w (may) 4187 5280 w (both) 4401 5280 w (send) 4635 5280 w (and) 4877 5280 w (receive) 970 5400 w (messages,) 1305 5400 w (and) 1791 5400 w (some) 1983 5400 w (ports) 2247 5400 w (are) 2504 5400 w (read) 2670 5400 w (by) 2893 5400 w (multiple) 3026 5400 w (applications.) 3413 5400 w 10 /LucidaSansUnicode00 f (The) 720 5676 w (plumber) 952 5676 w (takes) 1410 5676 w (messages) 1718 5676 w (from) 2244 5676 w (the) 2527 5676 w 10 /LucidaTypewriter f (send) 2733 5676 w 10 /LucidaSansUnicode00 f (file) 3072 5676 w (and) 3274 5676 w (interprets) 3505 5676 w (their) 4029 5676 w (contents) 4305 5676 w (using) 4774 5676 w (rules) 720 5796 w (defined) 992 5796 w (by) 1391 5796 w (a) 1539 5796 w (special-purpose) 1627 5796 w (pattern-action) 2449 5796 w (language.) 3186 5796 w (The) 3726 5796 w (language) 3940 5796 w (specifies any) 4416 5796 w (rewriting) 720 5916 w (of) 1191 5916 w (the) 1326 5916 w (message) 1518 5916 w (that) 1979 5916 w (is) 2207 5916 w (to) 2324 5916 w (be) 2459 5916 w (done) 2615 5916 w (by) 2894 5916 w (the) 3046 5916 w (plumber) 3238 5916 w (and) 3682 5916 w (defines) 3900 5916 w (how) 4292 5916 w (to) 4530 5916 w (dispose) 4666 5916 w (of a message, such as by sending it to a port or starting a new process to handle it.) 720 6036 w (The) 720 6192 w (behavior) 949 6192 w (is) 1416 6192 w (best) 1544 6192 w (described) 1799 6192 w (by) 2320 6192 w (example.) 2483 6192 w (Imagine) 3008 6192 w (that) 3442 6192 w (the) 3682 6192 w (user) 3886 6192 w (has,) 4145 6192 w (in) 4394 6192 w (a) 4534 6192 w (terminal) 4638 6192 w (emulator window, just run a compilation that has failed:) 720 6312 w 9 /LucidaTypewriter f (%) 1008 6482 w (make) 1138 6482 w (cc) 1008 6592 w (-c) 1203 6592 w (rmstar.c) 1398 6592 w (rmstar.c:32:) 1008 6702 w (syntax) 1853 6702 w (error) 2308 6702 w (...) 1008 6812 w 10 /LucidaSansUnicode00 f (The) 720 6992 w (user) 945 6992 w (points) 1199 6992 w (the) 1546 6992 w (typing) 1745 6992 w (cursor) 2094 6992 w (somewhere) 2445 6992 w (in) 3042 6992 w (the) 3177 6992 w (string) 3376 6992 w 10 /LucidaTypewriter f (rmstar.c:32:) 3702 6992 w 10 /LucidaSansUnicode00 f (and) 4610 6992 w (exe\255) 4834 6992 w (cutes) 720 7112 w (the) 1016 7112 w 10 /LucidaTypewriter f (plumb) 1210 7112 w 10 /LucidaSansUnicode00 f (menu) 1609 7112 w (entry.) 1921 7112 w (This) 2272 7112 w (causes) 2516 7112 w (the) 2881 7112 w (terminal) 3074 7112 w (emulator) 3514 7112 w (to) 3986 7112 w (format) 4122 7112 w (a) 4484 7112 w (plumbing) 4577 7112 w (message) 720 7232 w (containing) 1198 7232 w (the) 1762 7232 w (entire) 1972 7232 w (string) 2308 7232 w (surrounding) 2645 7232 w (the) 3296 7232 w (cursor,) 3506 7232 w 10 /LucidaTypewriter f (rmstar:32:) 3900 7232 w 10 /LucidaSansUnicode00 f (,) 4620 7232 w (and) 4707 7232 w (to) 4942 7232 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /LucidaSansUnicode00 f (\255 3 \255) 2783 480 w (write) 720 840 w (it) 1003 840 w (to) 1112 840 w 10 /LucidaTypewriter f (/mnt/plumb/send) 1253 840 w 10 /LucidaSansUnicode00 f (.) 2333 840 w (The) 2440 840 w (plumber) 2664 840 w (receives) 3114 840 w (this) 3549 840 w (message) 3771 840 w (and) 4238 840 w (compares) 4461 840 w (it) 4974 840 w (sequentially) 720 960 w (to) 1339 960 w (the) 1475 960 w (various) 1668 960 w (patterns) 2057 960 w (in) 2497 960 w (its) 2626 960 w (configuration.) 2782 960 w (Eventually,) 3534 960 w (it) 4093 960 w (will) 4198 960 w (find) 4401 960 w (one) 4631 960 w (that) 4849 960 w (breaks) 720 1080 w (the) 1080 1080 w (string) 1271 1080 w (into) 1589 1080 w (pieces,) 1814 1080 w 10 /LucidaTypewriter f (rmstar.c) 2188 1080 w 10 /LucidaSansUnicode00 f (,) 2764 1080 w (a) 2832 1080 w (colon,) 2923 1080 w 10 /LucidaTypewriter f (32) 3254 1080 w 10 /LucidaSansUnicode00 f (,) 3398 1080 w (and) 3465 1080 w (the) 3680 1080 w (final) 3870 1080 w (colon.) 4117 1080 w (Other) 4480 1080 w (asso\255) 4789 1080 w (ciated) 720 1200 w (patterns) 1054 1200 w (verify) 1499 1200 w (that) 1809 1200 w 10 /LucidaTypewriter f (rmstar.c) 2043 1200 w 10 /LucidaSansUnicode00 f (is) 2662 1200 w (a) 2786 1200 w (file) 2885 1200 w (in) 3080 1200 w (the) 3215 1200 w (current) 3414 1200 w (directory) 3808 1200 w (of) 4283 1200 w (the) 4425 1200 w (program) 4624 1200 w (generating) 720 1320 w (the) 1287 1320 w (message,) 1487 1320 w (and) 1987 1320 w (that) 2211 1320 w 10 /LucidaTypewriter f (32) 2446 1320 w 10 /LucidaSansUnicode00 f (looks) 2634 1320 w (like) 2938 1320 w (a) 3154 1320 w (line) 3253 1320 w (number) 3473 1320 w (within) 3894 1320 w (it.) 4234 1320 w (The) 4408 1320 w (plumber) 4633 1320 w (rewrites) 720 1440 w (the) 1142 1440 w (message,) 1331 1440 w (setting) 1821 1440 w (the) 2189 1440 w (data) 2378 1440 w (to) 2622 1440 w (the) 2754 1440 w (string) 2943 1440 w 10 /LucidaTypewriter f (rmstar.c) 3259 1440 w 10 /LucidaSansUnicode00 f (and) 3869 1440 w (attaching) 4083 1440 w (an) 4567 1440 w (indica\255) 4718 1440 w (tion) 720 1560 w (that) 950 1560 w 10 /LucidaTypewriter f (32) 1182 1560 w 10 /LucidaSansUnicode00 f (is) 1367 1560 w (a) 1488 1560 w (line) 1584 1560 w (number) 1801 1560 w (to) 2219 1560 w (display.) 2358 1560 w (Finally,) 2805 1560 w (it) 3188 1560 w (sends) 3295 1560 w (the) 3619 1560 w (resulting) 3814 1560 w (message) 4283 1560 w (to) 4747 1560 w (the) 4885 1560 w 10 /LucidaTypewriter f (edit) 720 1680 w 10 /LucidaSansUnicode00 f (port.) 1043 1680 w (The) 1344 1680 w (text) 1560 1680 w (editor) 1786 1680 w (picks) 2108 1680 w (up) 2395 1680 w (the) 2555 1680 w (message,) 2745 1680 w (opens) 3236 1680 w 10 /LucidaTypewriter f (rmstar.c) 3564 1680 w 10 /LucidaSansUnicode00 f (\(if) 4175 1680 w (it) 4309 1680 w 10 /LucidaSansUnicode20 f (\031) 4375 1680 w 10 /LucidaSansUnicode00 f (s) 4407 1680 w (not) 4493 1680 w (already) 4689 1680 w (open\) and highlights line 32, the location of the syntax error.) 720 1800 w (From) 720 1956 w (the) 1013 1956 w (user) 1212 1956 w 10 /LucidaSansUnicode20 f (\031) 1422 1956 w 10 /LucidaSansUnicode00 f (s) 1454 1956 w (point) 1549 1956 w (of) 1845 1956 w (view,) 1987 1956 w (this) 2277 1956 w (process) 2500 1956 w (is) 2918 1956 w (simple:) 3042 1956 w (the) 3439 1956 w (error) 3638 1956 w (message) 3922 1956 w (appears,) 4390 1956 w (it) 4850 1956 w (is) 4960 1956 w 10 /LucidaSansUnicode20 f (\030) 720 2076 w 10 /LucidaSansUnicode00 f (plumbed) 752 2076 w 10 /LucidaSansUnicode20 f (\031) 1181 2076 w 10 /LucidaSansUnicode00 f (, and the editor jumps to the problem.) 1213 2076 w (Of) 720 2232 w (course,) 884 2232 w (there) 1287 2232 w (are) 1588 2232 w (many) 1789 2232 w (different) 2101 2232 w (ways) 2569 2232 w (to) 2854 2232 w (cause) 3002 2232 w (compiler) 3327 2232 w (messages) 3800 2232 w (to) 4325 2232 w (pop) 4473 2232 w (up) 4710 2232 w (the) 4885 2232 w (source) 720 2352 w (of) 1085 2352 w (an) 1226 2352 w (error,) 1386 2352 w (but) 1701 2352 w (the) 1906 2352 w (design) 2104 2352 w (of) 2470 2352 w (the) 2611 2352 w (plumber) 2808 2352 w (addresses) 3257 2352 w (more) 3786 2352 w (general) 4079 2352 w (issues) 4482 2352 w (than) 4824 2352 w (the) 720 2472 w (specific) 919 2472 w (goal) 1330 2472 w (of) 1581 2472 w (shortening) 1723 2472 w (the) 2290 2472 w (compile/debug/edit) 2489 2472 w (cycle.) 3512 2472 w (It) 3859 2472 w (facilitates) 3969 2472 w (the) 4479 2472 w (general) 4679 2472 w (exchange) 720 2592 w (of) 1236 2592 w (data) 1385 2592 w (among) 1646 2592 w (programs,) 2030 2592 w (interactive) 2580 2592 w (or) 3136 2592 w (otherwise,) 3289 2592 w (throughout) 3842 2592 w (the) 4439 2592 w (environ\255) 4644 2592 w (ment,) 720 2712 w (and) 1056 2712 w (its) 1292 2712 w (architecture) 1465 2712 w 10 /LucidaSansUnicode20 f (\024) 2043 2712 w 10 /LucidaSansUnicode00 f (a) 2143 2712 w (central,) 2254 2712 w (language-driven) 2673 2712 w (file) 3533 2712 w (server) 3741 2712 w 10 /LucidaSansUnicode20 f (\024) 4038 2712 w 10 /LucidaSansUnicode00 f (although) 4138 2712 w (unusual,) 4625 2712 w (has) 720 2832 w (distinct) 929 2832 w (advantages.) 1329 2832 w (It) 1982 2832 w (makes) 2088 2832 w (plumbing) 2441 2832 w (easy) 2944 2832 w (to) 3198 2832 w (add) 3336 2832 w (to) 3557 2832 w (an) 3695 2832 w (existing,) 3852 2832 w (Unix-like) 4311 2832 w (com\255) 4802 2832 w (mand) 720 2952 w (environment;) 1049 2952 w (it) 1748 2952 w (guarantees) 1870 2952 w (uniform) 2463 2952 w (handling) 2904 2952 w (of) 3384 2952 w (inter-application) 3538 2952 w (messages;) 4411 2952 w (it) 4974 2952 w (off-loads) 720 3072 w (from) 1213 3072 w (those) 1486 3072 w (applications) 1794 3072 w (most) 2420 3072 w (of) 2703 3072 w (the) 2842 3072 w (work) 3037 3072 w (of) 3314 3072 w (extracting) 3452 3072 w (and) 3983 3072 w (dispatching) 4203 3072 w (mes\255) 4807 3072 w (sages; and it works transparently and effortlessly across a network.) 720 3192 w (This paper is) 720 3348 w (organized) 1380 3348 w (bottom-up,) 1899 3348 w (beginning) 2499 3348 w (with) 3019 3348 w (the) 3257 3348 w (format) 3445 3348 w (of) 3802 3348 w (the) 3933 3348 w (messages) 4121 3348 w (and) 4629 3348 w (pro\255) 4842 3348 w (ceeding) 720 3468 w (through) 1139 3468 w (the) 1566 3468 w (plumbing) 1761 3468 w (language,) 2264 3468 w (the) 2779 3468 w (handling) 2974 3468 w (of) 3438 3468 w (messages,) 3576 3468 w (and) 4122 3468 w (the) 4341 3468 w (interactive) 4535 3468 w (user) 720 3588 w (interface.) 963 3588 w (The) 1484 3588 w (last) 1698 3588 w (sections) 1903 3588 w (discuss) 2335 3588 w (the) 2727 3588 w (implications) 2916 3588 w (of) 3539 3588 w (the) 3671 3588 w (design) 3860 3588 w (and) 4217 3588 w (compare) 4431 3588 w (the) 4885 3588 w (plumbing system to other environments that provide similar services.) 720 3708 w 10 /LucidaSans-Demi f (Format of messages) 720 3948 w 10 /LucidaSansUnicode00 f (Since) 720 4104 w (the) 1024 4104 w (language) 1232 4104 w (that) 1728 4104 w (controls) 1972 4104 w (the) 2418 4104 w (plumber) 2626 4104 w (is) 3086 4104 w (defined) 3219 4104 w (in) 3638 4104 w (terms) 3782 4104 w (of) 4113 4104 w (the) 4264 4104 w (contents) 4472 4104 w (of) 4942 4104 w (plumbing messages, we begin by describing their layout.) 720 4224 w (Plumbing) 720 4380 w (messages) 1215 4380 w (have) 1730 4380 w (a) 1995 4380 w (fixed-format) 2090 4380 w (textual) 2759 4380 w (header) 3137 4380 w (followed) 3511 4380 w (by) 3965 4380 w (a) 4121 4380 w (free-format) 4217 4380 w (data) 4830 4380 w (section.) 720 4500 w (The) 1165 4500 w (header) 1380 4500 w (consists) 1747 4500 w (of) 2174 4500 w (six) 2306 4500 w (lines) 2481 4500 w (of) 2741 4500 w (text,) 2872 4500 w (in) 3128 4500 w (set) 3252 4500 w (order,) 3429 4500 w (each) 3756 4500 w (specifying) 4013 4500 w (a) 4538 4500 w (property) 4626 4500 w (of) 720 4620 w (the) 857 4620 w (message.) 1051 4620 w (Any) 1578 4620 w (line) 1800 4620 w (may) 2015 4620 w (be) 2254 4620 w (blank) 2412 4620 w (except) 2718 4620 w (the) 3081 4620 w (last,) 3275 4620 w (which) 3518 4620 w (is) 3838 4620 w (the) 3957 4620 w (length) 4151 4620 w (of) 4498 4620 w (the) 4635 4620 w (data) 4830 4620 w (portion of the message, as a decimal string.) 720 4740 w (The lines are, in order:) 2922 4740 w (The source application, the name of the program generating the message.) 970 4896 w (The destination port, the name of the port to which the messages should be sent.) 970 5052 w (The working directory in which the message was generated.) 970 5208 w (The type of the data, analogous to a MIME type, such as) 970 5364 w 10 /LucidaTypewriter f (text) 3716 5364 w 10 /LucidaSansUnicode00 f (or) 4036 5364 w 10 /LucidaTypewriter f (image/gif) 4170 5364 w 10 /LucidaSansUnicode00 f (.) 4818 5364 w (Attributes of the message, given as blank-separated) 970 5520 w 10 /LucidaSans-Italic f (name) 3554 5520 w 10 /LucidaTypewriter f (=) 3823 5520 w 10 /LucidaSans-Italic f (value) 3895 5520 w 10 /LucidaSansUnicode00 f (pairs.) 4186 5520 w (The) 4521 5520 w (values) 4735 5520 w (may be quoted to protect blanks or quotes; values may not contain newlines.) 970 5640 w (The length of the data section, in bytes.) 970 5796 w (Here) 720 5952 w (is) 999 5952 w (a) 1131 5952 w (sample) 1238 5952 w (message,) 1637 5952 w (one) 2145 5952 w (that) 2376 5952 w (\(conventionally\)) 2619 5952 w (tells) 3435 5952 w (the) 3689 5952 w (editor) 3896 5952 w (to) 4235 5952 w (open) 4386 5952 w (the) 4681 5952 w (file) 4889 5952 w 10 /LucidaTypewriter f (/usr/rob/src/mem.c) 720 6072 w 10 /LucidaSansUnicode00 f (and display line 27 within it:) 2048 6072 w 9 /LucidaTypewriter f (plumbtest) 1008 6242 w (edit) 1008 6352 w (/usr/rob/src) 1008 6462 w (text) 1008 6572 w (addr=27) 1008 6682 w (5) 1008 6792 w (mem.c) 1008 6902 w 10 /LucidaSansUnicode00 f (Because) 720 7082 w (in) 1143 7082 w (general) 1268 7082 w (it) 1663 7082 w (need) 1763 7082 w (not) 2034 7082 w (be) 2228 7082 w (text,) 2381 7082 w (the) 2638 7082 w (data) 2827 7082 w (section) 3072 7082 w (of) 3454 7082 w (the) 3587 7082 w (message) 3777 7082 w (has) 4236 7082 w (no) 4439 7082 w (terminat\255) 4597 7082 w (ing newline.) 720 7202 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /LucidaSansUnicode00 f (\255 4 \255) 2783 480 w (A) 720 840 w (library) 841 840 w (interface) 1203 840 w (simplifies) 1680 840 w (the) 2200 840 w (processing) 2408 840 w (of) 2988 840 w (messages) 3139 840 w (by) 3667 840 w (translating) 3835 840 w (them) 4408 840 w (to) 4709 840 w (and) 4860 840 w (from a data structure,) 720 960 w 10 /LucidaTypewriter f (Plumbmsg) 1815 960 w 10 /LucidaSansUnicode00 f (, defined like this:) 2391 960 w 9 /LucidaTypewriter f (typedef) 1008 1130 w (struct) 1528 1130 w (Plumbattr) 1983 1130 w (Plumbattr;) 2633 1130 w (typedef) 1008 1240 w (struct) 1528 1240 w (Plumbmsg) 1983 1240 w (Plumbmsg;) 2633 1240 w (struct) 1008 1460 w (Plumbmsg) 1463 1460 w ({) 1008 1570 w (char) 1188 1680 w (*src;) 1908 1680 w (/*) 2448 1680 w (source) 2643 1680 w (application) 3098 1680 w (*/) 3878 1680 w (char) 1188 1790 w (*dst;) 1908 1790 w (/*) 2448 1790 w (destination) 2643 1790 w (port) 3423 1790 w (*/) 3748 1790 w (char) 1188 1900 w (*wdir;) 1908 1900 w (/*) 2448 1900 w (working) 2643 1900 w (directory) 3163 1900 w (*/) 3813 1900 w (char) 1188 2010 w (*type;) 1908 2010 w (/*) 2448 2010 w (type) 2643 2010 w (of) 2968 2010 w (data) 3163 2010 w (*/) 3488 2010 w (Plumbattr) 1188 2120 w (*attr;) 1908 2120 w (/*) 2448 2120 w (attribute) 2643 2120 w (list) 3293 2120 w (*/) 3618 2120 w (int) 1188 2230 w (ndata;) 1908 2230 w (/*) 2448 2230 w (#bytes) 2643 2230 w (of) 3098 2230 w (data) 3293 2230 w (*/) 3618 2230 w (char) 1188 2340 w (*data;) 1908 2340 w (};) 1008 2450 w (struct) 1008 2670 w (Plumbattr) 1463 2670 w ({) 1008 2780 w (char) 1188 2890 w (*name;) 1908 2890 w (char) 1188 3000 w (*value;) 1908 3000 w (Plumbattr) 1188 3110 w (*next;) 1908 3110 w (};) 1008 3220 w 10 /LucidaSansUnicode00 f (The) 720 3400 w (library) 935 3400 w (also) 1279 3400 w (includes) 1509 3400 w (routines) 1946 3400 w (to) 2379 3400 w (send) 2511 3400 w (a) 2777 3400 w (message,) 2866 3400 w (receive) 3356 3400 w (a) 3731 3400 w (message,) 3820 3400 w (manipulate) 4310 3400 w (the) 4885 3400 w (attribute list, and so on.) 720 3520 w 10 /LucidaSans-Demi f (The Language) 720 3760 w 10 /LucidaSansUnicode00 f (An) 720 3916 w (instance) 907 3916 w (of) 1366 3916 w (the) 1520 3916 w (plumber) 1731 3916 w (runs) 2194 3916 w (for) 2466 3916 w (each) 2661 3916 w (user) 2941 3916 w (on) 3207 3916 w (each) 3386 3916 w (terminal) 3666 3916 w (or) 4125 3916 w (workstation.) 4284 3916 w (It) 4974 3916 w (begins) 720 4036 w (by) 1081 4036 w (reading) 1233 4036 w (its) 1638 4036 w (rules) 1792 4036 w (from) 2068 4036 w (the) 2337 4036 w (file) 2529 4036 w 10 /LucidaTypewriter f (lib/plumbing) 2717 4036 w 10 /LucidaSansUnicode00 f (in) 3618 4036 w (the) 3746 4036 w (user) 3938 4036 w 10 /LucidaSansUnicode20 f (\031) 4148 4036 w 10 /LucidaSansUnicode00 f (s) 4180 4036 w (home) 4268 4036 w (directory,) 4577 4036 w (which) 720 4156 w (in) 1040 4156 w (turn) 1170 4156 w (may) 1412 4156 w (use) 1652 4156 w 10 /LucidaTypewriter f (include) 1861 4156 w 10 /LucidaSansUnicode00 f (statements) 2405 4156 w (to) 2980 4156 w (interpolate) 3118 4156 w (macro) 3684 4156 w (definitions) 4025 4156 w (and) 4581 4156 w (rules) 4801 4156 w (from standard plumbing rule libraries stored in) 720 4276 w 10 /LucidaTypewriter f (/sys/lib/plumb) 3048 4276 w 10 /LucidaSansUnicode00 f (.) 4056 4276 w (The) 720 4432 w (rules) 938 4432 w (control) 1214 4432 w (the) 1593 4432 w (processing) 1785 4432 w (of) 2349 4432 w (messages.) 2484 4432 w (They) 3060 4432 w (are) 3330 4432 w (written) 3520 4432 w (in) 3897 4432 w (a) 4026 4432 w (pattern-action) 4119 4432 w (lan\255) 4861 4432 w (guage) 720 4552 w (comprising) 1055 4552 w (a) 1635 4552 w (sequence) 1728 4552 w (of) 2223 4552 w (blank-line-separated) 2358 4552 w 10 /LucidaSans-Italic f (rule) 3431 4552 w (sets) 3660 4552 w 10 /LucidaSansUnicode00 f (,) 3849 4552 w (each) 3918 4552 w (of) 4179 4552 w (which) 4314 4552 w (contains) 4632 4552 w (one) 720 4672 w (or) 934 4672 w (more) 1071 4672 w 10 /LucidaSans-Italic f (patterns) 1357 4672 w 10 /LucidaSansUnicode00 f (followed) 1802 4672 w (by) 2250 4672 w (one) 2400 4672 w (or) 2614 4672 w (more) 2751 4672 w 10 /LucidaSans-Italic f (actions) 3037 4672 w 10 /LucidaSansUnicode00 f (.) 3383 4672 w (Each) 3483 4672 w (incoming) 3741 4672 w (message) 4226 4672 w (is) 4686 4672 w (com\255) 4802 4672 w (pared) 720 4792 w (against) 1035 4792 w (the) 1423 4792 w (rule) 1615 4792 w (sets) 1840 4792 w (in) 2072 4792 w (order.) 2200 4792 w (If) 2562 4792 w (all) 2664 4792 w (the) 2813 4792 w (patterns) 3004 4792 w (within) 3442 4792 w (a) 3774 4792 w (rule) 3865 4792 w (set) 4089 4792 w (succeed,) 4269 4792 w (one) 4727 4792 w (of) 4942 4792 w (the associated actions is taken and processing completes.) 720 4912 w (The) 720 5068 w (syntax) 946 5068 w (of) 1309 5068 w (the) 1452 5068 w (language) 1652 5068 w (is) 2140 5068 w (straightforward.) 2265 5068 w (Each) 3123 5068 w (rule) 3390 5068 w (\(pattern) 3623 5068 w (or) 4052 5068 w (action\)) 4200 5068 w (has) 4574 5068 w (three) 4788 5068 w (components,) 720 5188 w (separated) 1386 5188 w (by) 1900 5188 w (white) 2052 5188 w (space:) 2350 5188 w (an) 2695 5188 w 10 /LucidaSans-Italic f (object) 2848 5188 w 10 /LucidaSansUnicode00 f (,) 3140 5188 w (a) 3208 5188 w 10 /LucidaSans-Italic f (verb) 3299 5188 w 10 /LucidaSansUnicode00 f (,) 3515 5188 w (and) 3583 5188 w (optional) 3799 5188 w 10 /LucidaSans-Italic f (arguments) 4232 5188 w 10 /LucidaSansUnicode00 f (.) 4759 5188 w (The) 4859 5188 w (object identifies a part of the message,) 720 5308 w (such) 2652 5308 w (as) 2911 5308 w (the) 3050 5308 w (source) 3238 5308 w (application) 3593 5308 w (\() 4160 5308 w 10 /LucidaTypewriter f (src) 4193 5308 w 10 /LucidaSansUnicode00 f (\),) 4409 5308 w (or) 4507 5308 w (the) 4642 5308 w (data) 4830 5308 w (portion) 720 5428 w (of) 1110 5428 w (the) 1244 5428 w (message) 1435 5428 w (\() 1895 5428 w 10 /LucidaTypewriter f (data) 1928 5428 w 10 /LucidaSansUnicode00 f (\),) 2216 5428 w (or) 2317 5428 w (the) 2455 5428 w (rule) 2645 5428 w 10 /LucidaSansUnicode20 f (\031) 2833 5428 w 10 /LucidaSansUnicode00 f (s) 2865 5428 w (own) 2951 5428 w (arguments) 3186 5428 w (\() 3740 5428 w 10 /LucidaTypewriter f (arg) 3773 5428 w 10 /LucidaSansUnicode00 f (\);) 3989 5428 w (or) 4089 5428 w (it) 4226 5428 w (is) 4327 5428 w (the) 4442 5428 w (keyword) 4632 5428 w 10 /LucidaTypewriter f (plumb) 720 5548 w 10 /LucidaSansUnicode00 f (,) 1080 5548 w (which) 1149 5548 w (introduces) 1467 5548 w (an) 2018 5548 w (action.) 2173 5548 w (The) 2570 5548 w (verb) 2789 5548 w (specifies) 3039 5548 w (an) 3500 5548 w (operation) 3655 5548 w (to) 4158 5548 w (perform) 4294 5548 w (on) 4724 5548 w (the) 4885 5548 w (object,) 720 5668 w (such) 1099 5668 w (as) 1374 5668 w (the) 1529 5668 w (word) 1733 5668 w 10 /LucidaSansUnicode20 f (\030) 2024 5668 w 10 /LucidaTypewriter f (is) 2056 5668 w 10 /LucidaSansUnicode20 f (\031) 2200 5668 w 10 /LucidaSansUnicode00 f (to) 2281 5668 w (require) 2428 5668 w (precise) 2825 5668 w (equality) 3221 5668 w (between) 3653 5668 w (the) 4108 5668 w (object) 4311 5668 w (and) 4657 5668 w (the) 4885 5668 w (argument, or ) 720 5788 w 10 /LucidaSansUnicode20 f (\030) 1386 5788 w 10 /LucidaTypewriter f (isdir) 1418 5788 w 10 /LucidaSansUnicode20 f (\031) 1778 5788 w 10 /LucidaSansUnicode00 f (to require that the object be the name of a directory.) 1842 5788 w (For) 720 5944 w (instance,) 933 5944 w (this) 1426 5944 w (rule) 1663 5944 w (set) 1909 5944 w (sends) 2111 5944 w (messages) 2452 5944 w (containing) 2985 5944 w (the) 3553 5944 w (names) 3766 5944 w (of) 4141 5944 w (files) 4297 5944 w (ending) 4557 5944 w (in) 4949 5944 w 10 /LucidaTypewriter f (.gif) 720 6064 w 10 /LucidaSansUnicode00 f (,) 1008 6064 w 10 /LucidaTypewriter f (.jpg) 1083 6064 w 10 /LucidaSansUnicode00 f (,) 1371 6064 w (etc.) 1446 6064 w (to) 1665 6064 w (a) 1806 6064 w (program,) 1904 6064 w 10 /LucidaTypewriter f (page) 2395 6064 w 10 /LucidaSansUnicode00 f (,) 2683 6064 w (to) 2758 6064 w (display) 2898 6064 w (them;) 3282 6064 w (it) 3604 6064 w (is) 3712 6064 w (analogous) 3834 6064 w (to) 4374 6064 w (a) 4514 6064 w (Windows) 4611 6064 w (association rule:) 720 6184 w 9 /LucidaTypewriter f (#) 1008 6354 w (image) 1138 6354 w (files) 1528 6354 w (go) 1918 6354 w (to) 2113 6354 w (page) 2308 6354 w (type) 1008 6464 w (is) 1333 6464 w (text) 1528 6464 w (data) 1008 6574 w (matches) 1333 6574 w ('[a-zA-Z0-9_\\-./]+') 1853 6574 w (data) 1008 6684 w (matches) 1333 6684 w ('\([a-zA-Z0-9_\\-./]+\)\\.\(jpe?g|gif|bit|tiff|ppm\)') 1853 6684 w (arg) 1008 6794 w (isfile) 1268 6794 w ($0) 1723 6794 w (plumb) 1008 6904 w (to) 1398 6904 w (image) 1593 6904 w (plumb) 1008 7014 w (client) 1398 7014 w (page) 1853 7014 w (-wi) 2178 7014 w 10 /LucidaSansUnicode00 f (\(Lines) 720 7194 w (beginning) 1040 7194 w (with) 1564 7194 w 10 /LucidaTypewriter f (#) 1806 7194 w 10 /LucidaSansUnicode00 f (are) 1915 7194 w (commentary.\)) 2104 7194 w (Consider) 2839 7194 w (how) 3308 7194 w (this) 3545 7194 w (rule) 3761 7194 w (handles) 3986 7194 w (the) 4401 7194 w (following) 4593 7194 w (message, annotated down the left column for clarity:) 720 7314 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /LucidaSansUnicode00 f (\255 5 \255) 2783 480 w 9 /LucidaSans-Italic f (src) 1008 830 w 9 /LucidaTypewriter f (plumbtest) 1458 830 w 9 /LucidaSans-Italic f (dst) 1008 940 w (wdir) 1008 1050 w 9 /LucidaTypewriter f (/usr/rob/pics) 1458 1050 w 9 /LucidaSans-Italic f (type) 1008 1160 w 9 /LucidaTypewriter f (text) 1458 1160 w 9 /LucidaSans-Italic f (attr) 1008 1270 w (ndata) 1008 1380 w 9 /LucidaTypewriter f (9) 1458 1380 w 9 /LucidaSans-Italic f (data) 1008 1490 w 9 /LucidaTypewriter f (horse.gif) 1458 1490 w 10 /LucidaSansUnicode00 f (The) 720 1670 w 10 /LucidaTypewriter f (is) 938 1670 w 10 /LucidaSansUnicode00 f (verb) 1119 1670 w (specifies) 1368 1670 w (a) 1828 1670 w (precise) 1920 1670 w (match,) 2304 1670 w (and) 2671 1670 w (the) 2888 1670 w 10 /LucidaTypewriter f (type) 3080 1670 w 10 /LucidaSansUnicode00 f (field) 3405 1670 w (of) 3656 1670 w (the) 3792 1670 w (message) 3985 1670 w (is) 4447 1670 w (the) 4565 1670 w (string) 4758 1670 w 10 /LucidaTypewriter f (text) 720 1790 w 10 /LucidaSansUnicode00 f (,) 1008 1790 w (so) 1081 1790 w (the) 1234 1790 w (first) 1430 1790 w (pattern) 1666 1790 w (succeeds.) 2057 1790 w (The) 2602 1790 w 10 /LucidaTypewriter f (matches) 2823 1790 w 10 /LucidaSansUnicode00 f (verb) 3367 1790 w (invokes) 3619 1790 w (a) 4028 1790 w (regular) 4123 1790 w (expression) 4509 1790 w (pattern) 720 1910 w (match) 1107 1910 w (of) 1441 1910 w (the) 1575 1910 w (object) 1766 1910 w (\(here) 2101 1910 w 10 /LucidaTypewriter f (data) 2386 1910 w 10 /LucidaSansUnicode00 f (\)) 2674 1910 w (against) 2744 1910 w (the) 3132 1910 w (argument) 3324 1910 w (pattern.) 3829 1910 w (Both) 4281 1910 w 10 /LucidaTypewriter f (matches) 4536 1910 w 10 /LucidaSansUnicode00 f (patterns) 720 2030 w (in) 1173 2030 w (this) 1315 2030 w (rule) 1545 2030 w (set) 1783 2030 w (will) 1977 2030 w (succeed,) 2191 2030 w (and) 2663 2030 w (in) 2893 2030 w (the) 3034 2030 w (process) 3239 2030 w (set) 3663 2030 w (the) 3857 2030 w (variables) 4062 2030 w 10 /LucidaTypewriter f ($0) 4543 2030 w 10 /LucidaSansUnicode00 f (to) 4737 2030 w (the) 4885 2030 w (matched) 720 2150 w (string,) 1171 2150 w 10 /LucidaTypewriter f ($1) 1519 2150 w 10 /LucidaSansUnicode00 f (to) 1697 2150 w (the) 1829 2150 w (first) 2018 2150 w (parenthesized) 2247 2150 w (submatch,) 2969 2150 w (and) 3509 2150 w (so) 3723 2150 w (on) 3869 2150 w (\(analogous) 4026 2150 w (to) 4592 2150 w 10 /LucidaTypewriter f (&) 4725 2150 w 10 /LucidaSansUnicode00 f (,) 4797 2150 w 10 /LucidaTypewriter f (\\1) 4864 2150 w 10 /LucidaSansUnicode00 f (,) 5008 2150 w (etc.) 720 2270 w (in) 931 2270 w 10 /LucidaTypewriter f (ed) 1057 2270 w 10 /LucidaSansUnicode20 f (\031) 1201 2270 w 10 /LucidaSansUnicode00 f (s) 1233 2270 w (regular) 1319 2270 w (expressions\).) 1700 2270 w (The) 2414 2270 w (pattern) 2630 2270 w 10 /LucidaTypewriter f (arg) 3016 2270 w (isfile) 3267 2270 w ($0) 3734 2270 w 10 /LucidaSansUnicode00 f (verifies) 3912 2270 w (that) 4297 2270 w (the) 4522 2270 w (named) 4711 2270 w (file,) 720 2390 w 10 /LucidaTypewriter f (horse.gif) 950 2390 w 10 /LucidaSansUnicode00 f (,) 1598 2390 w (is) 1677 2390 w (an) 1804 2390 w (actual) 1969 2390 w (file) 2306 2390 w (in) 2505 2390 w (the) 2644 2390 w (directory) 2847 2390 w 10 /LucidaTypewriter f (/usr/rob/pics) 3326 2390 w 10 /LucidaSansUnicode00 f (.) 4262 2390 w (If) 4374 2390 w (all) 4488 2390 w (the) 4649 2390 w (pat\255) 4852 2390 w (terns succeed, one of the actions will be executed.) 720 2510 w (There are two actions in this rule set.) 720 2666 w (The) 2593 2666 w 10 /LucidaTypewriter f (plumb) 2806 2666 w (to) 3198 2666 w 10 /LucidaSansUnicode00 f (rule) 3374 2666 w (specifies) 3595 2666 w 10 /LucidaTypewriter f (image) 4051 2666 w 10 /LucidaSansUnicode00 f (as) 4444 2666 w (the) 4583 2666 w (desti\255) 4771 2666 w (nation) 720 2786 w (port) 1082 2786 w (of) 1340 2786 w (the) 1494 2786 w (message.) 1704 2786 w (By) 2247 2786 w (convention,) 2412 2786 w (the) 3032 2786 w (plumber) 3242 2786 w (mounts) 3704 2786 w (its) 4125 2786 w (services) 4297 2786 w (in) 4739 2786 w (the) 4885 2786 w (directory) 720 2906 w 10 /LucidaTypewriter f (/mnt/plumb) 1206 2906 w 10 /LucidaSansUnicode00 f (,) 1926 2906 w (so) 2013 2906 w (in) 2180 2906 w (this) 2327 2906 w (case) 2562 2906 w (if) 2831 2906 w (the) 2953 2906 w (file) 3164 2906 w 10 /LucidaTypewriter f (/mnt/plumb/image) 3371 2906 w 10 /LucidaSansUnicode00 f (has) 4579 2906 w (been) 4803 2906 w (opened,) 720 3026 w (the) 1153 3026 w (message) 1348 3026 w (will) 1812 3026 w (be) 2016 3026 w (made) 2175 3026 w (available) 2482 3026 w (to) 2945 3026 w (the) 3083 3026 w (program) 3278 3026 w (reading) 3734 3026 w (from) 4142 3026 w (it.) 4413 3026 w (Note) 4582 3026 w (that) 4849 3026 w (the) 720 3146 w (message) 908 3146 w (does) 1365 3146 w (not) 1629 3146 w (name) 1822 3146 w (a) 2121 3146 w (port,) 2209 3146 w (but) 2476 3146 w (the) 2671 3146 w (rule) 2859 3146 w (set) 3080 3146 w (that) 3257 3146 w (matches) 3481 3146 w (the) 3919 3146 w (message) 4107 3146 w (does,) 4564 3146 w (and) 4860 3146 w (that) 720 3266 w (is) 951 3266 w (sufficient) 1071 3266 w (to) 1562 3266 w (dispatch) 1700 3266 w (the) 2151 3266 w (message.) 2346 3266 w (If) 2874 3266 w (on) 2980 3266 w (the) 3143 3266 w (other) 3338 3266 w (hand) 3635 3266 w (a) 3916 3266 w (message) 4010 3266 w (matches) 4473 3266 w (no) 4917 3266 w (rule but has an explicit port mentioned, that too is sufficient.) 720 3386 w (If) 720 3542 w (no) 819 3542 w (client) 975 3542 w (has) 1272 3542 w (opened) 1473 3542 w (the) 1867 3542 w 10 /LucidaTypewriter f (image) 2055 3542 w 10 /LucidaSansUnicode00 f (port,) 2449 3542 w (that) 2717 3542 w (is,) 2942 3542 w (if) 3088 3542 w (the) 3188 3542 w (program) 3377 3542 w 10 /LucidaTypewriter f (page) 3827 3542 w 10 /LucidaSansUnicode00 f (is) 4149 3542 w (not) 4263 3542 w (already) 4457 3542 w (run\255) 4842 3542 w (ning,) 720 3662 w (the) 1005 3662 w 10 /LucidaTypewriter f (plumb) 1198 3662 w (client) 1596 3662 w 10 /LucidaSansUnicode00 f (action) 2066 3662 w (gives) 2399 3662 w (the) 2687 3662 w (execution) 2880 3662 w (script) 3393 3662 w (to) 3703 3662 w (start) 3839 3662 w (the) 4097 3662 w (application) 4289 3662 w (and) 4860 3662 w (send) 720 3782 w (the) 991 3782 w (message) 1185 3782 w (on) 1648 3782 w (its) 1810 3782 w (way;) 1966 3782 w (the) 2221 3782 w 10 /LucidaTypewriter f (-wi) 2415 3782 w 10 /LucidaSansUnicode00 f (arguments) 2670 3782 w (tell) 3228 3782 w 10 /LucidaTypewriter f (page) 3418 3782 w 10 /LucidaSansUnicode00 f (to) 3745 3782 w (create) 3882 3782 w (a) 4218 3782 w (window) 4313 3782 w (and) 4722 3782 w (to) 4942 3782 w (receive) 720 3902 w (its) 1096 3902 w (initial) 1248 3902 w (arguments) 1552 3902 w (from) 2105 3902 w (the) 2371 3902 w (plumbing) 2560 3902 w (port.) 3057 3902 w (The) 3357 3902 w (process) 3572 3902 w (by) 3980 3902 w (which) 4129 3902 w (the) 4444 3902 w (plumber) 4633 3902 w (starts a program is described in more detail in the next section.) 720 4022 w (It) 720 4178 w (may) 836 4178 w (seem) 1087 4178 w (odd) 1394 4178 w (that) 1632 4178 w (there) 1874 4178 w (are) 2177 4178 w (two) 2380 4178 w 10 /LucidaTypewriter f (matches) 2606 4178 w 10 /LucidaSansUnicode00 f (rules) 3161 4178 w (in) 3451 4178 w (this) 3593 4178 w (example.) 3823 4178 w (The) 4351 4178 w (reason) 4583 4178 w (is) 4960 4178 w (related) 720 4298 w (to) 1102 4298 w (the) 1245 4298 w (way) 1445 4298 w (the) 1674 4298 w (plumber) 1874 4298 w (can) 2325 4298 w (use) 2537 4298 w (the) 2750 4298 w (rules) 2949 4298 w (themselves) 3232 4298 w (to) 3819 4298 w (refine) 3961 4298 w (the) 4286 4298 w 10 /LucidaSans-Italic f (data) 4485 4298 w 10 /LucidaSansUnicode00 f (in) 4750 4298 w (the) 4885 4298 w (message,) 720 4418 w (somewhat) 1233 4418 w (in) 1782 4418 w (the) 1930 4418 w (manner) 2143 4418 w (of) 2570 4418 w (Structural) 2726 4418 w (Regular) 3253 4418 w (Expressions) 3679 4418 w ([Pike87a].) 4317 4418 w (For) 4884 4418 w (example, consider what happens if the cursor is at the last character of) 720 4538 w 9 /LucidaTypewriter f (%) 1008 4708 w (make) 1138 4708 w (nightmare>horse.gif) 1463 4708 w 10 /LucidaSansUnicode00 f (and) 720 4888 w (the) 944 4888 w (user) 1143 4888 w (asks) 1398 4888 w (to) 1658 4888 w (plumb) 1801 4888 w (what) 2156 4888 w (the) 2432 4888 w (cursor) 2632 4888 w (is) 2984 4888 w (pointing) 3109 4888 w (at.) 3559 4888 w (The) 3760 4888 w (program) 3986 4888 w (creating) 4447 4888 w (the) 4885 4888 w (plumbing) 720 5008 w (message) 1229 5008 w 10 /LucidaSansUnicode20 f (\024) 1653 5008 w 10 /LucidaSansUnicode00 f (in) 1753 5008 w (this) 1890 5008 w (case) 2115 5008 w (the) 2374 5008 w (terminal) 2575 5008 w (emulator) 3022 5008 w (running) 3501 5008 w (the) 3926 5008 w (window) 4126 5008 w 10 /LucidaSansUnicode20 f (\024) 4495 5008 w 10 /LucidaSansUnicode00 f (can) 4595 5008 w (send) 4808 5008 w (the) 720 5128 w (entire) 920 5128 w (white-space-delimited) 1246 5128 w (string) 2399 5128 w 10 /LucidaTypewriter f (nightmare>horse.gif) 2726 5128 w 10 /LucidaSansUnicode00 f (or) 4139 5128 w (even) 4286 5128 w (the) 4558 5128 w (entire) 4759 5128 w (line,) 720 5248 w (and) 968 5248 w (the) 1187 5248 w (combination) 1381 5248 w (of) 2023 5248 w 10 /LucidaTypewriter f (matches) 2160 5248 w 10 /LucidaSansUnicode00 f (rules) 2703 5248 w (can) 2981 5248 w (determine) 3188 5248 w (that) 3720 5248 w (the) 3950 5248 w (user) 4144 5248 w (was) 4393 5248 w (referring) 4615 5248 w (to) 720 5368 w (the) 901 5368 w (string) 1139 5368 w 10 /LucidaTypewriter f (horse.gif) 1504 5368 w 10 /LucidaSansUnicode00 f (.) 2152 5368 w (The) 2299 5368 w (user) 2563 5368 w (could) 2856 5368 w (of) 3205 5368 w (course) 3386 5368 w (select) 3791 5368 w (the) 4154 5368 w (entire) 4393 5368 w (string) 4758 5368 w 10 /LucidaTypewriter f (horse.gif) 720 5488 w 10 /LucidaSansUnicode00 f (,) 1368 5488 w (but) 1441 5488 w (it) 1644 5488 w 10 /LucidaSansUnicode20 f (\031) 1710 5488 w 10 /LucidaSansUnicode00 f (s) 1742 5488 w (more) 1834 5488 w (convenient) 2126 5488 w (just) 2695 5488 w (to) 2916 5488 w (point) 3055 5488 w (in) 3348 5488 w (the) 3480 5488 w (general) 3676 5488 w (location) 4078 5488 w (and) 4503 5488 w (let) 4723 5488 w (the) 4885 5488 w (machine figure out what should be done.) 720 5608 w (The process is as follows.) 2783 5608 w (The) 720 5764 w (application) 936 5764 w (generating) 1505 5764 w (the) 2062 5764 w (message) 2252 5764 w (adds) 2712 5764 w (a) 2980 5764 w (special) 3071 5764 w (attribute) 3441 5764 w (to) 3894 5764 w (the) 4028 5764 w (message,) 4219 5764 w (named) 4711 5764 w 10 /LucidaTypewriter f (click) 720 5884 w 10 /LucidaSansUnicode00 f (,) 1080 5884 w (whose) 1156 5884 w (numerical) 1507 5884 w (value) 2029 5884 w (is) 2327 5884 w (the) 2451 5884 w (offset) 2650 5884 w (of) 2973 5884 w (the) 3114 5884 w (cursor) 3312 5884 w 10 /LucidaSansUnicode20 f (\024) 3619 5884 w 10 /LucidaSansUnicode00 f (the) 3719 5884 w (selection) 3917 5884 w (point) 4392 5884 w 10 /LucidaSansUnicode20 f (\024) 4644 5884 w 10 /LucidaSansUnicode00 f (within) 4744 5884 w (the) 720 6004 w (data) 936 6004 w (string.) 1207 6004 w (This) 1614 6004 w (attribute) 1880 6004 w (tells) 2358 6004 w (the) 2621 6004 w (plumber) 2837 6004 w (two) 3305 6004 w (things:) 3541 6004 w (first,) 3937 6004 w (that) 4225 6004 w (the) 4477 6004 w (regular) 4694 6004 w (expressions) 720 6124 w (in) 1335 6124 w 10 /LucidaTypewriter f (matches) 1459 6124 w 10 /LucidaSansUnicode00 f (rules) 1996 6124 w (should) 2268 6124 w (be used to identify the relevant data; and second,) 2629 6124 w (approximately) 720 6244 w (where) 1486 6244 w (the) 1850 6244 w (relevant) 2077 6244 w (data) 2537 6244 w (lies.) 2819 6244 w (The) 3120 6244 w (plumber) 3373 6244 w (will) 3852 6244 w (then) 4088 6244 w (use) 4377 6244 w (the) 4618 6244 w (first) 4845 6244 w 10 /LucidaTypewriter f (matches) 720 6364 w 10 /LucidaSansUnicode00 f (pattern) 1261 6364 w (to) 1649 6364 w (identify) 1784 6364 w (the) 2186 6364 w (longest) 2378 6364 w (leftmost) 2773 6364 w (match) 3211 6364 w (that) 3546 6364 w (touches) 3774 6364 w (the) 4191 6364 w (cursor,) 4383 6364 w (which) 4759 6364 w (will) 720 6484 w (extract) 933 6484 w (the) 1320 6484 w (string) 1524 6484 w 10 /LucidaTypewriter f (horse.gif) 1855 6484 w 10 /LucidaSansUnicode00 f (,) 2503 6484 w (and) 2584 6484 w (the) 2813 6484 w (second) 3017 6484 w (pattern) 3410 6484 w (will) 3810 6484 w (then) 4024 6484 w (verify) 4291 6484 w (that) 4608 6484 w (that) 4849 6484 w (names) 720 6604 w (a) 1079 6604 w (picture) 1176 6604 w (file.) 1557 6604 w (The) 1814 6604 w (rule) 2037 6604 w (set) 2267 6604 w (succeeds) 2453 6604 w (and) 2936 6604 w (the) 3158 6604 w (data) 3354 6604 w (is) 3605 6604 w (winnowed) 3726 6604 w (to) 4254 6604 w (the) 4393 6604 w (matching) 4589 6604 w (substring before being sent to its destination.) 720 6724 w (Each) 720 6880 w 10 /LucidaTypewriter f (matches) 994 6880 w 10 /LucidaSansUnicode00 f (pattern) 1551 6880 w (within) 1955 6880 w (a) 2304 6880 w (given) 2412 6880 w (rule) 2726 6880 w (set) 2967 6880 w (must) 3164 6880 w (match) 3460 6880 w (the) 3811 6880 w (same) 4019 6880 w (portion) 4327 6880 w (of) 4734 6880 w (the) 4885 6880 w (string,) 720 7000 w (which) 1078 7000 w (guarantees) 1403 7000 w (that) 1984 7000 w (the) 2219 7000 w (rule) 2418 7000 w (set) 2650 7000 w (fails) 2838 7000 w (to) 3083 7000 w (match) 3225 7000 w (a) 3567 7000 w (string) 3666 7000 w (for) 3992 7000 w (which) 4174 7000 w (the) 4498 7000 w (second) 4696 7000 w (pattern matches only a portion.) 720 7120 w (For instance, our example) 2313 7120 w (rule) 3610 7120 w (set) 3831 7120 w (should) 4008 7120 w (not) 4369 7120 w (execute) 4562 7120 w (if) 4974 7120 w (the) 720 7240 w (data) 952 7240 w (is) 1238 7240 w (the) 1394 7240 w (string) 1625 7240 w 10 /LucidaTypewriter f (horse.gift) 1983 7240 w 10 /LucidaSansUnicode00 f (,) 2703 7240 w (and) 2811 7240 w (although) 3067 7240 w (the) 3573 7240 w (first) 3804 7240 w (pattern) 4075 7240 w (will) 4502 7240 w (match) 4742 7240 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Page: 6 6 /saveobj save def mark 6 pagesetup 10 /LucidaSansUnicode00 f (\255 6 \255) 2783 480 w 10 /LucidaTypewriter f (horse.gift) 720 840 w 10 /LucidaSansUnicode00 f (, the second will match only) 1440 840 w 10 /LucidaTypewriter f (horse.gif) 2829 840 w 10 /LucidaSansUnicode00 f (and the rule set will fail.) 3509 840 w (The) 720 996 w (same) 939 996 w (approach) 1232 996 w (of) 1721 996 w (multiple) 1857 996 w 10 /LucidaTypewriter f (matches) 2293 996 w 10 /LucidaSansUnicode00 f (rules) 2835 996 w (can) 3112 996 w (be) 3318 996 w (used) 3476 996 w (to) 3747 996 w (exclude,) 3884 996 w (for) 4333 996 w (instance,) 4511 996 w (a) 4985 996 w (terminal) 720 1116 w (period) 1159 1116 w (from) 1509 1116 w (a) 1778 1116 w (file) 1870 1116 w (name) 2058 1116 w (or) 2361 1116 w (URL,) 2500 1116 w (so) 2754 1116 w (a) 2903 1116 w (file) 2995 1116 w (name) 3183 1116 w (or) 3486 1116 w (URL) 3625 1116 w (at) 3847 1116 w (the) 3976 1116 w (end) 4167 1116 w (of) 4384 1116 w (a) 4518 1116 w (sentence) 4609 1116 w (is recognized properly.) 720 1236 w (If) 720 1392 w (a) 828 1392 w 10 /LucidaTypewriter f (click) 925 1392 w 10 /LucidaSansUnicode00 f (attribute) 1327 1392 w (is) 1787 1392 w (not) 1910 1392 w (specified,) 2113 1392 w (all) 2623 1392 w (patterns) 2779 1392 w (must) 3224 1392 w (match) 3510 1392 w (the) 3851 1392 w (entire) 4049 1392 w (string,) 4373 1392 w (so) 4730 1392 w (the) 4885 1392 w (user) 720 1512 w (has) 966 1512 w (an) 1169 1512 w (option:) 1321 1512 w (he) 1701 1512 w (or) 1854 1512 w (she) 1991 1512 w (may) 2195 1512 w (select) 2430 1512 w (exactly) 2745 1512 w (what) 3121 1512 w (data) 3387 1512 w (to) 3632 1512 w (send,) 3765 1512 w (or) 4064 1512 w (may) 4201 1512 w (instead) 4436 1512 w (indi\255) 4824 1512 w (cate) 720 1632 w (where) 968 1632 w (the) 1309 1632 w (data) 1513 1632 w (is) 1772 1632 w (by) 1901 1632 w (clicking) 2065 1632 w (the) 2485 1632 w (selection) 2689 1632 w (button) 3170 1632 w (on) 3542 1632 w (the) 3715 1632 w (mouse) 3920 1632 w (and) 4293 1632 w (letting) 4523 1632 w (the) 4885 1632 w (machine) 720 1752 w (locate) 1163 1752 w (the) 1487 1752 w (URL) 1677 1752 w (or) 1897 1752 w (image) 2034 1752 w (file) 2364 1752 w (name) 2550 1752 w (within) 2851 1752 w (the) 3182 1752 w (text.) 3372 1752 w (In) 3662 1752 w (other) 3788 1752 w (words,) 4080 1752 w (the) 4439 1752 w (user) 4628 1752 w (can) 4872 1752 w (control) 720 1872 w (the) 1104 1872 w (contents) 1301 1872 w (of) 1760 1872 w (the) 1900 1872 w (message) 2097 1872 w (precisely) 2563 1872 w (when) 3033 1872 w (required,) 3332 1872 w (but) 3817 1872 w (the) 4021 1872 w (default,) 4218 1872 w (simplest) 4631 1872 w (action in the user interface does the right thing most of the time.) 720 1992 w 10 /LucidaSans-Demi f (How Messages are Handled in the Plumber) 720 2232 w 10 /LucidaSansUnicode00 f (An) 720 2388 w (application) 902 2388 w (creates) 1487 2388 w (a) 1885 2388 w (message) 1991 2388 w (header,) 2467 2388 w (fills) 2884 2388 w (in) 3111 2388 w (whatever) 3254 2388 w (fields) 3742 2388 w (it) 4059 2388 w (wishes) 4177 2388 w (to) 4555 2388 w (define,) 4705 2388 w (attaches) 720 2508 w (the) 1163 2508 w (data,) 1357 2508 w (and) 1638 2508 w (writes) 1857 2508 w (the) 2187 2508 w (result) 2381 2508 w (to) 2696 2508 w (the) 2833 2508 w (file) 3027 2508 w 10 /LucidaTypewriter f (send) 3217 2508 w 10 /LucidaSansUnicode00 f (in) 3543 2508 w (the) 3672 2508 w (plumber) 3865 2508 w 10 /LucidaSansUnicode20 f (\031) 4272 2508 w 10 /LucidaSansUnicode00 f (s) 4304 2508 w (service) 4393 2508 w (direc\255) 4767 2508 w (tory,) 720 2628 w 10 /LucidaTypewriter f (/mnt/plumb) 976 2628 w 10 /LucidaSansUnicode00 f (.) 1696 2628 w (The) 1793 2628 w (plumber) 2007 2628 w (receives) 2448 2628 w (the) 2874 2628 w (message) 3063 2628 w (and) 3521 2628 w (applies) 3735 2628 w (the) 4115 2628 w (plumbing) 4304 2628 w (rules) 4801 2628 w (successively) 720 2748 w (to) 1351 2748 w (it.) 1489 2748 w (When) 1659 2748 w (a) 1965 2748 w (rule) 2060 2748 w (set) 2288 2748 w (matches,) 2472 2748 w (the) 2949 2748 w (message) 3144 2748 w (is) 3608 2748 w (dispatched) 3727 2748 w (as) 4296 2748 w (indicated) 4441 2748 w (by) 4925 2748 w (that) 720 2868 w (rule) 955 2868 w (set) 1188 2868 w (and) 1377 2868 w (processing) 1602 2868 w (continues) 2174 2868 w (with) 2690 2868 w (the) 2940 2868 w (next) 3140 2868 w (message.) 3401 2868 w (If) 3934 2868 w (no) 4045 2868 w (rule) 4213 2868 w (set) 4446 2868 w (matches) 4635 2868 w (the) 720 2988 w (message,) 923 2988 w (the) 1427 2988 w (plumber) 1630 2988 w (indicates) 2084 2988 w (this) 2564 2988 w (by) 2790 2988 w (returning) 2952 2988 w (a) 3451 2988 w (write) 3553 2988 w (error) 3840 2988 w (to) 4127 2988 w (the) 4272 2988 w (application,) 4474 2988 w (that is, the write) 720 3108 w (to) 1547 3108 w 10 /LucidaTypewriter f (/mnt/plumb/send) 1678 3108 w 10 /LucidaSansUnicode00 f (fails,) 2791 3108 w (with) 3057 3108 w (the) 3295 3108 w (resulting) 3483 3108 w (error) 3945 3108 w (string) 4218 3108 w (describing) 4533 3108 w (the) 720 3228 w (failure.) 911 3228 w (\(Plan) 1320 3228 w (9) 1590 3228 w (uses) 1689 3228 w (strings) 1945 3228 w (rather) 2314 3228 w (than) 2642 3228 w (pre-defined) 2894 3228 w (numbers) 3514 3228 w (to) 3978 3228 w (describe) 4112 3228 w (error) 4558 3228 w (con\255) 4833 3228 w (ditions.\)) 720 3348 w (Thus) 1185 3348 w (a) 1459 3348 w (program) 1550 3348 w (can) 2002 3348 w (discover) 2206 3348 w (whether) 2646 3348 w (a) 3073 3348 w (plumbing) 3164 3348 w (message) 3663 3348 w (has) 4123 3348 w (been) 4327 3348 w (sent) 4600 3348 w (suc\255) 4843 3348 w (cessfully.) 720 3468 w (After) 720 3624 w (a) 1000 3624 w (matching) 1095 3624 w (rule) 1586 3624 w (set) 1814 3624 w (has) 1998 3624 w (been) 2206 3624 w (identified,) 2483 3624 w (the) 3016 3624 w (plumber) 3211 3624 w (applies) 3659 3624 w (a) 4046 3624 w (series) 4142 3624 w (of) 4467 3624 w (rewriting) 4606 3624 w (steps) 720 3744 w (to) 1019 3744 w (the) 1158 3744 w (message.) 1354 3744 w (Some) 1883 3744 w (rewritings) 2188 3744 w (are) 2714 3744 w (defined) 2907 3744 w (by) 3314 3744 w (the) 3469 3744 w (rule) 3664 3744 w (set;) 3892 3744 w (others) 4108 3744 w (are) 4456 3744 w (implicit.) 4648 3744 w (For) 720 3864 w (example,) 914 3864 w (if) 1397 3864 w (the) 1501 3864 w (message) 1694 3864 w (does) 2156 3864 w (not) 2425 3864 w (specify) 2623 3864 w (a) 3000 3864 w (destination) 3093 3864 w (port,) 3674 3864 w (the) 3947 3864 w (outgoing) 4141 3864 w (message) 4616 3864 w (will) 720 3984 w (be) 917 3984 w (rewritten) 1069 3984 w (to) 1538 3984 w (identify) 1669 3984 w (it.) 2067 3984 w (If the message does specify the port, the rule set will only) 2229 3984 w (match) 720 4104 w (if) 1060 4104 w (any) 1168 4104 w 10 /LucidaTypewriter f (plumb) 1379 4104 w (to) 1781 4104 w 10 /LucidaSansUnicode00 f (action) 1967 4104 w (in) 2304 4104 w (the) 2437 4104 w (rule) 2635 4104 w (set) 2866 4104 w (names) 3053 4104 w (the) 3413 4104 w (same) 3611 4104 w (port.) 3909 4104 w (\(If) 4218 4104 w (it) 4360 4104 w (matches) 4469 4104 w (no) 4917 4104 w (rule sets, but mentions a port, it will be sent there unmodified.\)) 720 4224 w (The) 720 4380 w (rule) 953 4380 w (set) 1193 4380 w (may) 1390 4380 w (contain) 1643 4380 w (actions) 2053 4380 w (that) 2452 4380 w (explicitly) 2696 4380 w (rewrite) 3185 4380 w (components) 3575 4380 w (of) 4225 4380 w (the) 4376 4380 w (message.) 4584 4380 w (These) 720 4500 w (may) 1046 4500 w (modify) 1284 4500 w (the) 1657 4500 w (attribute) 1850 4500 w (list) 2305 4500 w (or) 2489 4500 w (replace) 2629 4500 w (the) 3018 4500 w (data) 3211 4500 w (section) 3459 4500 w (of) 3844 4500 w (the) 3979 4500 w (message.) 4171 4500 w (Here) 4696 4500 w (is) 4960 4500 w (a) 720 4620 w (sample) 845 4620 w (rule) 1262 4620 w (set) 1520 4620 w (that) 1734 4620 w (does) 1995 4620 w (both.) 2296 4620 w (It) 2653 4620 w (matches) 2789 4620 w (strings) 3264 4620 w (of) 3667 4620 w (the) 3835 4620 w (form) 4060 4620 w 10 /LucidaTypewriter f (plumb.h) 4363 4620 w 10 /LucidaSansUnicode00 f (or) 4938 4620 w 10 /LucidaTypewriter f (plumb.h:27) 720 4740 w 10 /LucidaSansUnicode00 f (.) 1440 4740 w (If) 1570 4740 w (that) 1702 4740 w (string) 1959 4740 w (identifies) 2307 4740 w (a) 2822 4740 w (file) 2942 4740 w (in) 3158 4740 w (the) 3314 4740 w (standard) 3534 4740 w (C) 4026 4740 w (include) 4160 4740 w (directory,) 4577 4740 w 10 /LucidaTypewriter f (/sys/include) 720 4860 w 10 /LucidaSansUnicode00 f (,) 1584 4860 w (perhaps) 1679 4860 w (with) 2133 4860 w (an) 2401 4860 w (optional) 2581 4860 w (line) 3041 4860 w (number,) 3280 4860 w (the) 3753 4860 w (outgoing) 3972 4860 w (message) 4472 4860 w (is) 4960 4860 w (rewritten to contain the full path name and an attribute,) 720 4980 w 10 /LucidaTypewriter f (addr) 3472 4980 w 10 /LucidaSansUnicode00 f (, to hold the line number:) 3760 4980 w 9 /LucidaTypewriter f (#) 1008 5150 w (.h) 1138 5150 w (files) 1333 5150 w (are) 1723 5150 w (looked) 1983 5150 w (up) 2438 5150 w (in) 2633 5150 w (/sys/include) 2828 5150 w (and) 3673 5150 w (passed) 3933 5150 w (to) 4388 5150 w (edit) 4583 5150 w (type) 1008 5260 w (is) 1333 5260 w (text) 1528 5260 w (data) 1008 5370 w (matches) 1333 5370 w ('\([a-zA-Z0-9]+\\.h\)\(:\([0-9]+\)\)?') 1853 5370 w (arg) 1008 5480 w (isfile) 1268 5480 w (/sys/include/$1) 1723 5480 w (data) 1008 5590 w (set) 1333 5590 w (/sys/include/$1) 1593 5590 w (attr) 1008 5700 w (add) 1333 5700 w (addr=$3) 1593 5700 w (plumb) 1008 5810 w (to) 1398 5810 w (edit) 1593 5810 w 10 /LucidaSansUnicode00 f (The) 720 5990 w 10 /LucidaTypewriter f (data) 942 5990 w (set) 1271 5990 w 10 /LucidaSansUnicode00 f (rule) 1528 5990 w (replaces) 1757 5990 w (the) 2200 5990 w (contents) 2396 5990 w (of) 2854 5990 w (the) 2993 5990 w (data,) 3190 5990 w (and) 3474 5990 w (the) 3696 5990 w 10 /LucidaTypewriter f (attr) 3893 5990 w (add) 4223 5990 w 10 /LucidaSansUnicode00 f (rule) 4481 5990 w (adds) 4711 5990 w (a) 4985 5990 w (new) 720 6110 w (attribute) 968 6110 w (to) 1438 6110 w (the) 1589 6110 w (message.) 1797 6110 w (The) 2338 6110 w (intent) 2571 6110 w (of) 2906 6110 w (this) 3056 6110 w (rule) 3287 6110 w (is) 3527 6110 w (to) 3659 6110 w (permit) 3809 6110 w (one) 4180 6110 w (to) 4411 6110 w (plumb) 4561 6110 w (an) 4923 6110 w (include) 720 6230 w (file) 1110 6230 w (name) 1299 6230 w (in) 1603 6230 w (a) 1732 6230 w (C) 1825 6230 w (program) 1932 6230 w (to) 2386 6230 w (trigger) 2522 6230 w (the) 2888 6230 w (opening) 3081 6230 w (of) 3514 6230 w (that) 3650 6230 w (file,) 3880 6230 w (perhaps) 4102 6230 w (at) 4532 6230 w (a) 4663 6230 w (speci\255) 4757 6230 w (fied) 720 6350 w (line,) 943 6350 w (in) 1189 6350 w (the) 1318 6350 w (text) 1511 6350 w (editor.) 1740 6350 w (A) 2129 6350 w (variant) 2236 6350 w (of) 2605 6350 w (this) 2741 6350 w (rule,) 2958 6350 w (discussed) 3216 6350 w (below,) 3730 6350 w (tells) 4085 6350 w (the) 4324 6350 w (editor) 4516 6350 w (how) 4840 6350 w (to) 720 6470 w (interpret) 858 6470 w (syntax) 1320 6470 w (errors) 1678 6470 w (from) 2009 6470 w (the) 2281 6470 w (compiler,) 2476 6470 w (or) 2971 6470 w (the) 3113 6470 w (output) 3308 6470 w (of) 3671 6470 w 10 /LucidaTypewriter f (grep) 3810 6470 w (-n) 4139 6470 w 10 /LucidaSansUnicode00 f (,) 4283 6470 w (both) 4356 6470 w (of) 4620 6470 w (which) 4759 6470 w (use a fixed syntax) 720 6590 w 10 /LucidaSans-Italic f (file) 1636 6590 w 10 /LucidaTypewriter f (:) 1785 6590 w 10 /LucidaSans-Italic f (line) 1857 6590 w 10 /LucidaSansUnicode00 f (to identify a line of source.) 2062 6590 w (The) 720 6746 w (Plan) 934 6746 w (9) 1168 6746 w (text) 1264 6746 w (editors) 1489 6746 w (interpret) 1861 6746 w (the) 2317 6746 w 10 /LucidaTypewriter f (addr) 2506 6746 w 10 /LucidaSansUnicode00 f (attribute) 2828 6746 w (as) 3279 6746 w (the) 3419 6746 w (definition) 3608 6746 w (of) 4107 6746 w (which) 4239 6746 w (portion) 4554 6746 w (of) 4942 6746 w (the) 720 6866 w (file) 916 6866 w (to) 1108 6866 w (display.) 1247 6866 w (In) 1694 6866 w (fact,) 1826 6866 w (the) 2079 6866 w (real) 2275 6866 w (rule) 2497 6866 w (includes) 2726 6866 w (a) 3169 6866 w (richer) 3264 6866 w (definition) 3584 6866 w (of) 4089 6866 w (the) 4227 6866 w (address) 4422 6866 w (syn\255) 4842 6866 w (tax,) 720 6986 w (so) 966 6986 w (one) 1139 6986 w (may) 1379 6986 w (plumb) 1640 6986 w (strings) 2011 6986 w (such) 2405 6986 w (as) 2692 6986 w 10 /LucidaTypewriter f (plumb.h:/plumbsend) 2859 6986 w 10 /LucidaSansUnicode00 f (\(using) 4216 6986 w (a) 4577 6986 w (regular) 4694 6986 w (expression after the) 720 7106 w 10 /LucidaTypewriter f (/) 1728 7106 w 10 /LucidaSansUnicode00 f (\) to pop up the declaration of a function in a C header file.) 1800 7106 w (Another) 720 7262 w (form) 1167 7262 w (of) 1458 7262 w (rewriting) 1615 7262 w (is) 2108 7262 w (that) 2247 7262 w (the) 2497 7262 w (plumber) 2711 7262 w (may) 3177 7262 w (modify) 3436 7262 w (the) 3830 7262 w (attribute) 4044 7262 w (list) 4521 7262 w (of) 4727 7262 w (the) 4885 7262 w cleartomark showpage saveobj restore %%EndPage: 6 6 %%Page: 7 7 /saveobj save def mark 7 pagesetup 10 /LucidaSansUnicode00 f (\255 7 \255) 2783 480 w (message) 720 840 w (to) 1191 840 w (clarify) 1335 840 w (how) 1675 840 w (to) 1921 840 w (handle) 2065 840 w (the) 2438 840 w (message.) 2639 840 w (The) 3173 840 w (primary) 3400 840 w (example) 3820 840 w (of) 4279 840 w (this) 4423 840 w (involves) 4648 840 w (the) 720 960 w (treatment) 908 960 w (of) 1415 960 w (the) 1546 960 w 10 /LucidaTypewriter f (click) 1735 960 w 10 /LucidaSansUnicode00 f (attribute,) 2129 960 w (described) 2612 960 w (in) 3119 960 w (the) 3244 960 w (previous) 3433 960 w (section.) 3882 960 w (If) 4327 960 w (the) 4427 960 w (message) 4616 960 w (contains) 720 1080 w (a) 1174 1080 w 10 /LucidaTypewriter f (click) 1275 1080 w 10 /LucidaSansUnicode00 f (attribute) 1681 1080 w (and) 2144 1080 w (the) 2369 1080 w (matching) 2569 1080 w (rule) 3065 1080 w (set) 3298 1080 w (uses) 3487 1080 w (it) 3752 1080 w (to) 3863 1080 w (extract) 4006 1080 w (the) 4389 1080 w (matching) 4589 1080 w (substring) 720 1200 w (from) 1212 1200 w (the) 1478 1200 w (data,) 1667 1200 w (the) 1943 1200 w (plumber) 2132 1200 w (deletes) 2573 1200 w (the) 2955 1200 w 10 /LucidaTypewriter f (click) 3144 1200 w 10 /LucidaSansUnicode00 f (attribute) 3538 1200 w (and) 3989 1200 w (replaces) 4203 1200 w (the) 4640 1200 w (data) 4830 1200 w (with the matching substring.) 720 1320 w (Once) 720 1476 w (the) 1000 1476 w (message) 1188 1476 w (is) 1645 1476 w (rewritten,) 1758 1476 w (the) 2259 1476 w (actions) 2447 1476 w (of) 2826 1476 w (the) 2957 1476 w (matching) 3145 1476 w (rule) 3629 1476 w (set) 3850 1476 w (are) 4027 1476 w (examined.) 4212 1476 w (If) 4785 1476 w (the) 4885 1476 w (rule) 720 1596 w (set) 951 1596 w (contains) 1138 1596 w (a) 1589 1596 w 10 /LucidaTypewriter f (plumb) 1687 1596 w (to) 2090 1596 w 10 /LucidaSansUnicode00 f (action) 2277 1596 w (and) 2615 1596 w (the) 2838 1596 w (corresponding) 3036 1596 w (port) 3782 1596 w (is) 4026 1596 w (open) 4148 1596 w 10 /LucidaSansUnicode20 f (\024) 4390 1596 w 10 /LucidaSansUnicode00 f (that) 4490 1596 w (is,) 4723 1596 w (if) 4877 1596 w (a) 4985 1596 w (program) 720 1716 w (is) 1180 1716 w (already) 1304 1716 w (reading) 1699 1716 w (from) 2111 1716 w (that) 2387 1716 w (port) 2622 1716 w 10 /LucidaSansUnicode20 f (\024) 2824 1716 w 10 /LucidaSansUnicode00 f (the) 2924 1716 w (message) 3123 1716 w (is) 3591 1716 w (delivered) 3715 1716 w (to) 4205 1716 w (the) 4348 1716 w (port.) 4548 1716 w (The) 4859 1716 w (application) 720 1836 w (will) 1287 1836 w (receive) 1484 1836 w (the) 1858 1836 w (message) 2046 1836 w (and) 2503 1836 w (handle) 2716 1836 w (it) 3076 1836 w (as it sees fit.) 3175 1836 w (If the port is not open, a) 3856 1836 w 10 /LucidaTypewriter f (plumb) 720 1956 w (start) 1119 1956 w 10 /LucidaSansUnicode00 f (or) 1518 1956 w 10 /LucidaTypewriter f (plumb) 1659 1956 w (client) 2058 1956 w 10 /LucidaSansUnicode00 f (action) 2529 1956 w (will) 2863 1956 w (start) 3066 1956 w (a) 3326 1956 w (new) 3420 1956 w (program) 3654 1956 w (to) 4109 1956 w (handle) 4246 1956 w (the) 4612 1956 w (mes\255) 4807 1956 w (sage.) 720 2076 w (The) 720 2232 w 10 /LucidaTypewriter f (plumb) 954 2232 w (start) 1367 2232 w 10 /LucidaSansUnicode00 f (action) 1780 2232 w (is) 2128 2232 w (the) 2261 2232 w (simpler:) 2469 2232 w (its) 2916 2232 w (argument) 3086 2232 w (specifies) 3607 2232 w (a) 4083 2232 w (command) 4191 2232 w (to) 4723 2232 w (run) 4875 2232 w (instead) 720 2352 w (of) 1121 2352 w (passing) 1267 2352 w (on) 1688 2352 w (the) 1859 2352 w (message;) 2062 2352 w (the) 2565 2352 w (message) 2767 2352 w (is) 3238 2352 w (discarded.) 3365 2352 w (Here) 3948 2352 w (for) 4222 2352 w (instance) 4408 2352 w (is) 4858 2352 w (a) 4985 2352 w (rule) 720 2472 w (that,) 952 2472 w (given) 1219 2472 w (the) 1524 2472 w (process) 1723 2472 w (id) 2141 2472 w (\(pid\)) 2277 2472 w (of) 2542 2472 w (an) 2684 2472 w (existing) 2845 2472 w (process,) 3276 2472 w (starts) 3726 2472 w (the) 4042 2472 w 10 /LucidaTypewriter f (acid) 4242 2472 w 10 /LucidaSansUnicode00 f (debugger) 4575 2472 w ([Wint94] in a new window to examine that process:) 720 2592 w 9 /LucidaTypewriter f (#) 1008 2762 w (processes) 1138 2762 w (go) 1788 2762 w (to) 1983 2762 w (acid) 2178 2762 w (\(assuming) 2503 2762 w (strlen\(pid\)) 3153 2762 w (>=) 3933 2762 w (2\)) 4128 2762 w (type) 1008 2872 w (is) 1333 2872 w (text) 1528 2872 w (data) 1008 2982 w (matches) 1333 2982 w ('[a-zA-Z0-9.:_\\-/]+') 1853 2982 w (data) 1008 3092 w (matches) 1333 3092 w ('[0-9][0-9]+') 1853 3092 w (arg) 1008 3202 w (isdir) 1268 3202 w (/proc/$0) 1658 3202 w (plumb) 1008 3312 w (start) 1398 3312 w (window) 1788 3312 w (acid) 2243 3312 w ($0) 2568 3312 w 10 /LucidaSansUnicode00 f (\(Note) 720 3492 w (the) 1065 3492 w (use) 1304 3492 w (of) 1557 3492 w (multiple) 1739 3492 w 10 /LucidaTypewriter f (matches) 2221 3492 w 10 /LucidaSansUnicode00 f (rules) 2809 3492 w (to) 3133 3492 w (avoid) 3316 3492 w (misfires) 3661 3492 w (from) 4133 3492 w (strings) 4450 3492 w (like) 4868 3492 w 10 /LucidaTypewriter f (party.1999) 720 3612 w 10 /LucidaSansUnicode00 f (.\)) 1440 3612 w (The) 1571 3612 w 10 /LucidaTypewriter f (arg) 1786 3612 w (isdir) 2036 3612 w 10 /LucidaSansUnicode00 f (rule) 2430 3612 w (checks) 2652 3612 w (that) 3015 3612 w (the) 3240 3612 w (pid) 3429 3612 w (represents) 3618 3612 w (a) 4165 3612 w (running) 4253 3612 w (process) 4666 3612 w (\(or) 720 3732 w (broken) 895 3732 w (one;) 1276 3732 w (Plan) 1527 3732 w (9) 1768 3732 w (does) 1871 3732 w (not) 2142 3732 w (create) 2342 3732 w 10 /LucidaTypewriter f (core) 2678 3732 w 10 /LucidaSansUnicode00 f (files) 3006 3732 w (but) 3249 3732 w (leaves) 3452 3732 w (broken) 3792 3732 w (processes) 4174 3732 w (around) 4696 3732 w (for) 720 3852 w (debugging\)) 912 3852 w (by) 1519 3852 w (checking) 1687 3852 w (that) 2170 3852 w (the) 2413 3852 w (process) 2620 3852 w (file) 3046 3852 w (system) 3249 3852 w (has) 3641 3852 w (a) 3861 3852 w (directory) 3968 3852 w (for) 4451 3852 w (that) 4642 3852 w (pid) 4885 3852 w ([Kill84].) 720 3972 w (Using) 1168 3972 w (this) 1482 3972 w (rule,) 1702 3972 w (one) 1963 3972 w (may) 2183 3972 w (plumb) 2424 3972 w (the) 2775 3972 w (pid) 2971 3972 w (string) 3167 3972 w (printed) 3490 3972 w (by) 3882 3972 w (the) 4038 3972 w 10 /LucidaTypewriter f (ps) 4234 3972 w 10 /LucidaSansUnicode00 f (command) 4419 3972 w (or) 4938 3972 w (by) 720 4092 w (the) 881 4092 w (operating) 1082 4092 w (system) 1594 4092 w (when) 1980 4092 w (the) 2283 4092 w (program) 2483 4092 w (breaks;) 2944 4092 w (the) 3345 4092 w (debugger) 3545 4092 w (will) 4055 4092 w (then) 4264 4092 w (start) 4526 4092 w (auto\255) 4792 4092 w (matically.) 720 4212 w (The) 720 4368 w (other) 938 4368 w (startup) 1232 4368 w (action,) 1615 4368 w 10 /LucidaTypewriter f (plumb) 1980 4368 w (client) 2378 4368 w 10 /LucidaSansUnicode00 f (,) 2810 4368 w (is) 2880 4368 w (used) 2998 4368 w (when) 3268 4368 w (a) 3563 4368 w (program) 3656 4368 w (will) 4110 4368 w (read) 4312 4368 w (messages) 4565 4368 w (from) 720 4488 w (the) 989 4488 w (plumbing) 1181 4488 w (port.) 1680 4488 w (For) 1982 4488 w (example,) 2174 4488 w (text) 2655 4488 w (editors) 2882 4488 w (can) 3256 4488 w (read) 3460 4488 w (files) 3711 4488 w (specified) 3949 4488 w (as) 4420 4488 w (command) 4562 4488 w (arguments,) 720 4608 w (so) 1308 4608 w (one) 1457 4608 w (could) 1673 4608 w (use) 1977 4608 w (a) 2184 4608 w 10 /LucidaTypewriter f (plumb) 2277 4608 w (start) 2675 4608 w 10 /LucidaSansUnicode00 f (rule) 3073 4608 w (to) 3299 4608 w (begin) 3435 4608 w (editing) 3745 4608 w (a) 4121 4608 w (file.) 4214 4608 w (If,) 4467 4608 w (however,) 4603 4608 w (the) 720 4728 w (editor) 910 4728 w (will) 1232 4728 w (read) 1431 4728 w (messages) 1681 4728 w (from) 2190 4728 w (the) 2456 4728 w 10 /LucidaTypewriter f (edit) 2645 4728 w 10 /LucidaSansUnicode00 f (plumbing) 2967 4728 w (port,) 3464 4728 w (letting) 3732 4728 w (it) 4078 4728 w (read) 4178 4728 w (the) 4427 4728 w (message) 4616 4728 w (from) 720 4848 w (the) 999 4848 w (port) 1201 4848 w (insures) 1450 4848 w (that) 1849 4848 w (it) 2087 4848 w (uses) 2200 4848 w (other) 2467 4848 w (information) 2772 4848 w (in) 3387 4848 w (the) 3526 4848 w (message,) 3729 4848 w (such) 4233 4848 w (as) 4507 4848 w (the) 4661 4848 w (line) 4864 4848 w (number) 720 4968 w (to) 1144 4968 w (display.) 1289 4968 w (The) 1742 4968 w 10 /LucidaTypewriter f (plumb) 1970 4968 w (client) 2377 4968 w 10 /LucidaSansUnicode00 f (action) 2856 4968 w (is) 3197 4968 w (therefore) 3323 4968 w (like) 3816 4968 w 10 /LucidaTypewriter f (plumb) 4034 4968 w (start) 4440 4968 w 10 /LucidaSansUnicode00 f (,) 4800 4968 w (but) 4878 4968 w (keeps) 720 5088 w (the) 1037 5088 w (message) 1225 5088 w (around) 1683 5088 w (for) 2061 5088 w (delivery) 2234 5088 w (when) 2646 5088 w (the) 2937 5088 w (application) 3126 5088 w (opens) 3694 5088 w (the) 4021 5088 w (port.) 4210 5088 w (Here) 4510 5088 w (is) 4771 5088 w (the) 4885 5088 w (full rule set to pass a regular file to the text editor:) 720 5208 w 9 /LucidaTypewriter f (#) 1008 5378 w (existing) 1138 5378 w (files,) 1723 5378 w (possibly) 2178 5378 w (tagged) 2763 5378 w (by) 3218 5378 w (address,) 3413 5378 w (go) 3998 5378 w (to) 4193 5378 w (editor) 4388 5378 w (type) 1008 5488 w (is) 1333 5488 w (text) 1528 5488 w (data) 1008 5598 w (matches) 1333 5598 w ('\([.a-zA-Z0-9_/\\-]*[a-zA-Z0-9_/\\-]\)\('$addr'\)?') 1853 5598 w (arg) 1008 5708 w (isfile) 1268 5708 w ($1) 1723 5708 w (data) 1008 5818 w (set) 1333 5818 w ($1) 1593 5818 w (attr) 1008 5928 w (add) 1333 5928 w (addr=$3) 1593 5928 w (plumb) 1008 6038 w (to) 1398 6038 w (edit) 1593 6038 w (plumb) 1008 6148 w (client) 1398 6148 w (window) 1853 6148 w ($editor) 2308 6148 w 10 /LucidaSansUnicode00 f (If) 720 6328 w (the) 822 6328 w (editor) 1013 6328 w (is) 1336 6328 w (already) 1453 6328 w (running,) 1841 6328 w (the) 2290 6328 w 10 /LucidaTypewriter f (plumb) 2482 6328 w (to) 2879 6328 w 10 /LucidaSansUnicode00 f (rule) 3060 6328 w (causes) 3285 6328 w (it) 3648 6328 w (to) 3751 6328 w (receive) 3886 6328 w (the) 4264 6328 w (message) 4456 6328 w (on) 4917 6328 w (the) 720 6448 w (port.) 909 6448 w (If) 1209 6448 w (not,) 1309 6448 w (the) 1535 6448 w (command) 1724 6448 w 10 /LucidaSansUnicode20 f (\030) 2236 6448 w 10 /LucidaTypewriter f (window) 2268 6448 w ($editor) 2734 6448 w 10 /LucidaSansUnicode20 f (\031) 3238 6448 w 10 /LucidaSansUnicode00 f (will) 3304 6448 w (create) 3502 6448 w (a) 3832 6448 w (new) 3921 6448 w (window) 4150 6448 w (\(using) 4553 6448 w (the) 4885 6448 w (Plan) 720 6568 w (9) 961 6568 w (program) 1064 6568 w 10 /LucidaTypewriter f (window) 1520 6568 w 10 /LucidaSansUnicode00 f (\)) 1952 6568 w (to) 2025 6568 w (run) 2163 6568 w (the) 2368 6568 w (editor,) 2564 6568 w (and) 2924 6568 w (once) 3145 6568 w (that) 3416 6568 w (starts) 3648 6568 w (it) 3961 6568 w (will) 4068 6568 w (open) 4273 6568 w (the) 4556 6568 w 10 /LucidaTypewriter f (edit) 4752 6568 w 10 /LucidaSansUnicode00 f (plumbing port as usual and discover this first message already waiting.) 720 6688 w (The) 720 6844 w (variables) 935 6844 w 10 /LucidaTypewriter f ($editor) 1400 6844 w 10 /LucidaSansUnicode00 f (and) 1938 6844 w 10 /LucidaTypewriter f ($addr) 2152 6844 w 10 /LucidaSansUnicode00 f (in) 2546 6844 w (this) 2671 6844 w (rule) 2884 6844 w (set) 3107 6844 w (are) 3286 6844 w (macros) 3473 6844 w (defined) 3860 6844 w (in) 4261 6844 w (the) 4387 6844 w (plumbing) 4577 6844 w (rules) 720 6964 w (file;) 999 6964 w (they) 1222 6964 w (specify) 1469 6964 w (the) 1848 6964 w (name) 2043 6964 w (of) 2349 6964 w (the) 2487 6964 w (user) 2682 6964 w 10 /LucidaSansUnicode20 f (\031) 2892 6964 w 10 /LucidaSansUnicode00 f (s) 2924 6964 w (favorite) 3015 6964 w (text) 3423 6964 w (editor) 3654 6964 w (and) 3981 6964 w (a) 4200 6964 w (regular) 4294 6964 w (expres\255) 4679 6964 w (sion) 720 7084 w (that) 957 7084 w (matches) 1182 7084 w (that) 1621 7084 w (editor) 1846 7084 w 10 /LucidaSansUnicode20 f (\031) 2133 7084 w 10 /LucidaSansUnicode00 f (s) 2165 7084 w (address) 2250 7084 w (syntax,) 2664 7084 w (such) 3048 7084 w (as) 3308 7084 w (line) 3448 7084 w (numbers) 3658 7084 w (and) 4120 7084 w (patterns.) 4334 7084 w (This) 4835 7084 w (rule) 720 7204 w (set) 944 7204 w (lives) 1124 7204 w (in) 1376 7204 w (a) 1502 7204 w (library) 1592 7204 w (of) 1937 7204 w (shared) 2070 7204 w (plumbing) 2433 7204 w (rules) 2931 7204 w (that) 3205 7204 w (users) 3431 7204 w 10 /LucidaSansUnicode20 f (\031) 3692 7204 w 10 /LucidaSansUnicode00 f (private) 3759 7204 w (rules) 4127 7204 w (can) 4401 7204 w (build) 4604 7204 w (on,) 4885 7204 w cleartomark showpage saveobj restore %%EndPage: 7 7 %%Page: 8 8 /saveobj save def mark 8 pagesetup 10 /LucidaSansUnicode00 f (\255 8 \255) 2783 480 w (so) 720 840 w (the) 867 840 w (rule) 1057 840 w (set) 1281 840 w (needs) 1461 840 w (to) 1785 840 w (be) 1919 840 w (adaptable) 2074 840 w (to) 2586 840 w (different) 2720 840 w (editors) 3174 840 w (and) 3548 840 w (their) 3764 840 w (address) 4025 840 w (syntax.) 4441 840 w (The) 4859 840 w (macro definitions for Acme and Sam [Pike94,Pike87b] look like this:) 720 960 w 9 /LucidaTypewriter f (editor=acme) 1008 1130 w (#) 1008 1240 w (or) 1138 1240 w (editor=sam) 1333 1240 w (addrelem='\(\(#?[0-9]+\)|\(/[A-Za-z0-9_\\^]+/?\)|[.$]\)') 1008 1350 w (addr=:\($addrelem\([,;+\\-]$addrelem\)*\)) 1008 1460 w 10 /LucidaSansUnicode00 f (Finally,) 720 1676 w (the) 1146 1676 w (application) 1385 1676 w (reads) 2003 1676 w (the) 2353 1676 w (message) 2592 1676 w (from) 3100 1676 w (the) 3416 1676 w (appropriate) 3655 1676 w (port,) 4304 1676 w (such) 4623 1676 w (as) 4934 1676 w 10 /LucidaTypewriter f (/mnt/plumb/edit) 720 1796 w 10 /LucidaSansUnicode00 f (, unpacks it, and goes to work.) 1800 1796 w 10 /LucidaSans-Demi f (Message Delivery) 720 2036 w 10 /LucidaSansUnicode00 f (In) 720 2192 w (summary,) 869 2192 w (a) 1406 2192 w (message) 1519 2192 w (is) 2001 2192 w (delivered) 2139 2192 w (by) 2642 2192 w (writing) 2816 2192 w (it) 3212 2192 w (to) 3337 2192 w (the) 3494 2192 w 10 /LucidaTypewriter f (send) 3708 2192 w 10 /LucidaSansUnicode00 f (file) 4055 2192 w (and) 4265 2192 w (having) 4504 2192 w (the) 4885 2192 w (plumber,) 720 2312 w (perhaps) 1207 2312 w (after) 1646 2312 w (some) 1920 2312 w (rewriting,) 2229 2312 w (send) 2743 2312 w (it) 3023 2312 w (to) 3137 2312 w (the) 3283 2312 w (destination) 3486 2312 w (port) 4076 2312 w (or) 4326 2312 w (start) 4475 2312 w (a) 4743 2312 w (new) 4845 2312 w (application) 720 2432 w (to) 1303 2432 w (handle) 1450 2432 w (it.) 1826 2432 w (If) 2005 2432 w (no) 2121 2432 w (destination) 2294 2432 w (can) 2886 2432 w (be) 3104 2432 w (found) 3273 2432 w (by) 3608 2432 w (the) 3773 2432 w (plumber,) 3978 2432 w (the) 4467 2432 w (original) 4672 2432 w (write) 720 2552 w (to) 1000 2552 w (the) 1138 2552 w 10 /LucidaTypewriter f (send) 1333 2552 w 10 /LucidaSansUnicode00 f (file) 1660 2552 w (will) 1850 2552 w (fail,) 2053 2552 w (and) 2274 2552 w (the) 2493 2552 w (application) 2687 2552 w (will) 3260 2552 w (know) 3463 2552 w (the) 3760 2552 w (message) 3954 2552 w (could) 4417 2552 w (not) 4722 2552 w (be) 4921 2552 w (delivered.) 720 2672 w (If) 720 2828 w (multiple) 819 2828 w (applications) 1250 2828 w (are) 1868 2828 w (reading) 2053 2828 w (from) 2454 2828 w (the) 2719 2828 w (destination) 2907 2828 w (port,) 3482 2828 w (each) 3749 2828 w (will) 4007 2828 w (receive) 4205 2828 w (an) 4580 2828 w (identi\255) 4731 2828 w (cal) 720 2948 w (copy) 890 2948 w (of) 1152 2948 w (the) 1285 2948 w (message;) 1475 2948 w (that) 1966 2948 w (is,) 2192 2948 w (the) 2339 2948 w (plumber) 2529 2948 w (implements) 2971 2948 w (fan-out.) 3575 2948 w (The) 4046 2948 w (number) 4262 2948 w (of) 4674 2948 w (mes\255) 4807 2948 w (sages) 720 3068 w (delivered) 1031 3068 w (is) 1512 3068 w (equal) 1628 3068 w (to) 1929 3068 w (the) 2063 3068 w (number) 2254 3068 w (of) 2667 3068 w (clients) 2801 3068 w (that) 3152 3068 w (have) 3379 3068 w (opened) 3640 3068 w (the) 4037 3068 w (destination) 4228 3068 w (port.) 4806 3068 w (The) 720 3188 w (plumber) 947 3188 w (queues) 1400 3188 w (the) 1796 3188 w (messages) 1997 3188 w (and) 2518 3188 w (makes) 2744 3188 w (sure) 3103 3188 w (that) 3359 3188 w (each) 3595 3188 w (application) 3864 3188 w (that) 4443 3188 w (opened) 4679 3188 w (the port before the message was written gets exactly one copy.) 720 3308 w (This) 720 3464 w (design) 959 3464 w (minimizes) 1316 3464 w (blocking) 1849 3464 w (in) 2298 3464 w (the) 2423 3464 w (sending) 2612 3464 w (applications,) 3031 3464 w (since) 3682 3464 w (the) 3965 3464 w (write) 4154 3464 w (to) 4429 3464 w (the) 4562 3464 w 10 /LucidaTypewriter f (send) 4752 3464 w 10 /LucidaSansUnicode00 f (file) 720 3584 w (can) 910 3584 w (complete) 1117 3584 w (as) 1601 3584 w (soon) 1745 3584 w (as) 2018 3584 w (the) 2162 3584 w (message) 2355 3584 w (has) 2817 3584 w (been) 3023 3584 w (queued) 3298 3584 w (for) 3698 3584 w (the) 3875 3584 w (appropriate) 4068 3584 w (port.) 4670 3584 w (If) 4974 3584 w (the) 720 3704 w (plumber) 911 3704 w (waited) 1354 3704 w (for) 1708 3704 w (the) 1884 3704 w (message) 2076 3704 w (to) 2537 3704 w (be) 2672 3704 w (read) 2828 3704 w (by) 3080 3704 w (the) 3232 3704 w (recipient,) 3424 3704 w (the) 3917 3704 w (sender) 4109 3704 w (could) 4475 3704 w (block) 4778 3704 w (unnecessarily.) 720 3824 w (Unfortunately,) 1483 3824 w (this) 2217 3824 w (design) 2438 3824 w (also) 2803 3824 w (means) 3041 3824 w (that) 3400 3824 w (there) 3632 3824 w (is) 3925 3824 w (no) 4046 3824 w (way) 4210 3824 w (for) 4435 3824 w (a) 4615 3824 w (sender) 4711 3824 w (to know) 720 3944 w (when) 1141 3944 w (the) 1431 3944 w (message) 1619 3944 w (has) 2076 3944 w (been) 2277 3944 w (handled;) 2547 3944 w (in) 3002 3944 w (fact,) 3126 3944 w (there) 3371 3944 w (are) 3656 3944 w (cases) 3841 3944 w (when) 4138 3944 w (the) 4428 3944 w (message) 4616 3944 w (will) 720 4064 w (not) 919 4064 w (be) 1114 4064 w (delivered) 1268 4064 w (at) 1748 4064 w (all,) 1875 4064 w (such) 2055 4064 w (as) 2316 4064 w (if) 2457 4064 w (the) 2557 4064 w (recipient) 2746 4064 w (exits) 3204 4064 w (while) 3472 4064 w (there) 3759 4064 w (are) 4045 4064 w (still) 4231 4064 w (messages) 4440 4064 w (in) 4949 4064 w (the) 720 4184 w (queue.) 914 4184 w (Since) 1316 4184 w (the) 1608 4184 w (plumber) 1803 4184 w (is) 2250 4184 w (part) 2370 4184 w (of) 2606 4184 w (a) 2744 4184 w (user) 2839 4184 w (interface,) 3089 4184 w (and) 3585 4184 w (not) 3805 4184 w (an) 4005 4184 w (autonomous) 4162 4184 w (mes\255) 4807 4184 w (sage) 720 4304 w (delivery) 983 4304 w (system,) 1400 4304 w (the) 1811 4304 w (decision) 2005 4304 w (was) 2446 4304 w (made) 2668 4304 w (to) 2973 4304 w (give) 3109 4304 w (the) 3346 4304 w (non-blocking) 3539 4304 w (property) 4235 4304 w (priority) 4687 4304 w (over) 720 4424 w (reliability) 964 4424 w (of) 1447 4424 w (message) 1579 4424 w (delivery.) 2037 4424 w (In) 2513 4424 w (practice,) 2638 4424 w (this) 3087 4424 w (tradeoff) 3300 4424 w (has) 3721 4424 w (worked) 3924 4424 w (out) 4315 4424 w (well:) 4510 4424 w (appli\255) 4768 4424 w (cations) 720 4544 w (almost) 1101 4544 w (always) 1462 4544 w (know) 1816 4544 w (when) 2109 4544 w (a) 2401 4544 w (message) 2491 4544 w (has) 2950 4544 w (failed) 3153 4544 w (to) 3457 4544 w (be) 3590 4544 w (delivered) 3744 4544 w (\(the) 4223 4544 w 10 /LucidaTypewriter f (write) 4445 4544 w 10 /LucidaSansUnicode00 f (fails) 4839 4544 w (because) 720 4664 w (no) 1153 4664 w (destination) 1315 4664 w (could) 1896 4664 w (be) 2201 4664 w (found\),) 2359 4664 w (and) 2748 4664 w (those) 2968 4664 w (occasions) 3275 4664 w (when) 3787 4664 w (the) 4084 4664 w (sender) 4279 4664 w (believes) 4648 4664 w (incorrectly) 720 4784 w (that) 1270 4784 w (the) 1500 4784 w (message) 1694 4784 w (has) 2157 4784 w (been) 2364 4784 w (delivered) 2640 4784 w (are) 3124 4784 w (both) 3315 4784 w (extremely) 3577 4784 w (rare) 4097 4784 w (and) 4329 4784 w (easily) 4548 4784 w (rec\255) 4859 4784 w (ognized by the user) 720 4904 w 10 /LucidaSansUnicode20 f (\024) 1686 4904 w 10 /LucidaSansUnicode00 f (usually because the recipient application has exited.) 1786 4904 w 10 /LucidaSans-Demi f (The Rules File) 720 5144 w 10 /LucidaSansUnicode00 f (The) 720 5300 w (plumber) 971 5300 w (begins) 1448 5300 w (execution) 1841 5300 w (by) 2386 5300 w (reading) 2571 5300 w (the) 3009 5300 w (user) 3234 5300 w 10 /LucidaSansUnicode20 f (\031) 3444 5300 w 10 /LucidaSansUnicode00 f (s) 3476 5300 w (startup) 3597 5300 w (plumbing) 4013 5300 w (rules) 4547 5300 w (file,) 4857 5300 w 10 /LucidaTypewriter f (lib/plumbing) 720 5420 w 10 /LucidaSansUnicode00 f (.) 1584 5420 w (Since) 1681 5420 w (the) 1966 5420 w (plumber) 2154 5420 w (is) 2594 5420 w (implemented) 2707 5420 w (as) 3377 5420 w (a) 3516 5420 w (file server, it can also present) 3604 5420 w (its) 720 5540 w (current) 880 5540 w (rules) 1273 5540 w (as) 1555 5540 w (a) 1704 5540 w (dynamic) 1802 5540 w (file,) 2250 5540 w (a) 2476 5540 w (design) 2574 5540 w (that) 2941 5540 w (provides) 3176 5540 w (an) 3636 5540 w (easily) 3797 5540 w (understood) 4113 5540 w (way) 4714 5540 w (to) 4942 5540 w (maintain the rules.) 720 5660 w (The file) 720 5816 w 10 /LucidaTypewriter f (/mnt/plumb/rules) 1116 5816 w 10 /LucidaSansUnicode00 f (is the text of the rule) 2300 5816 w (set) 3360 5816 w (the) 3537 5816 w (plumber) 3725 5816 w (is) 4165 5816 w (currently) 4278 5816 w (using,) 4742 5816 w (and) 720 5936 w (it) 942 5936 w (may) 1050 5936 w (be) 1292 5936 w (edited) 1453 5936 w (like) 1799 5936 w (a) 2013 5936 w (regular) 2110 5936 w (file) 2498 5936 w (to) 2691 5936 w (update) 2830 5936 w (those) 3207 5936 w (rules.) 3515 5936 w (To) 3859 5936 w (clear) 4024 5936 w (the) 4297 5936 w (rules,) 4493 5936 w (trun\255) 4805 5936 w (cate that file; to add a new rule set, append to it:) 720 6056 w 9 /LucidaTypewriter f (%) 1008 6226 w (echo) 1138 6226 w ('type) 1463 6226 w (is) 1853 6226 w (text) 2048 6226 w (data) 1008 6336 w (is) 1333 6336 w (self-destruct) 1528 6336 w (plumb) 1008 6446 w (start) 1398 6446 w (rm) 1788 6446 w (-rf) 1983 6446 w ($HOME') 2243 6446 w (>>) 2698 6446 w (/mnt/plumb/rules) 2893 6446 w 10 /LucidaSansUnicode00 f (This) 720 6626 w (rule) 961 6626 w (set) 1185 6626 w (will) 1365 6626 w (take) 1565 6626 w (effect) 1807 6626 w (immediately.) 2118 6626 w (If) 2811 6626 w (it) 2914 6626 w (has) 3017 6626 w (a) 3222 6626 w (syntax) 3314 6626 w (error,) 3669 6626 w (the) 3978 6626 w (write) 4170 6626 w (will) 4447 6626 w (fail) 4648 6626 w (with) 4835 6626 w (an error message from the plumber, such as ) 720 6746 w 10 /LucidaSansUnicode20 f (\030) 2915 6746 w 10 /LucidaSansUnicode00 f (malformed rule) 2947 6746 w 10 /LucidaSansUnicode20 f (\031) 3695 6746 w 10 /LucidaSansUnicode00 f (or ) 3759 6746 w 10 /LucidaSansUnicode20 f (\031) 3893 6746 w 10 /LucidaSansUnicode00 f (undefined verb) 3925 6746 w 10 /LucidaSansUnicode20 f (\031) 4659 6746 w 10 /LucidaSansUnicode00 f (.) 4691 6746 w (To restore the plumber to its startup configuration,) 720 6902 w 9 /LucidaTypewriter f (%) 1008 7072 w (cp) 1138 7072 w (/usr/$user/lib/plumbing) 1333 7072 w (/mnt/plumb/rules) 2893 7072 w 10 /LucidaSansUnicode00 f (For) 720 7252 w (more) 918 7252 w (sophisticated) 1211 7252 w (changes,) 1898 7252 w (one) 2371 7252 w (can) 2592 7252 w (of) 2802 7252 w (course) 2942 7252 w (use) 3306 7252 w (a) 3517 7252 w (regular) 3614 7252 w (text) 4002 7252 w (editor) 4235 7252 w (to) 4564 7252 w (modify) 4705 7252 w cleartomark showpage saveobj restore %%EndPage: 8 8 %%Page: 9 9 /saveobj save def mark 9 pagesetup 10 /LucidaSansUnicode00 f (\255 9 \255) 2783 480 w 10 /LucidaTypewriter f (/mnt/plumb/rules) 720 840 w 10 /LucidaSansUnicode00 f (.) 1872 840 w (This) 720 996 w (simple) 969 996 w (way) 1334 996 w (of) 1562 996 w (maintaining) 1705 996 w (an) 2325 996 w (active) 2487 996 w (service) 2812 996 w (could) 3193 996 w (profitably) 3504 996 w (be) 4016 996 w (adopted) 4180 996 w (by) 4623 996 w (other) 4783 996 w (systems.) 720 1116 w (It) 1210 1116 w (avoids) 1311 1116 w (the) 1657 1116 w (need) 1847 1116 w (to) 2119 1116 w (reboot,) 2252 1116 w (to) 2638 1116 w (update) 2771 1116 w (registries) 3141 1116 w (with) 3628 1116 w (special) 3867 1116 w (tools,) 4235 1116 w (or) 4540 1116 w (to) 4676 1116 w (send) 4808 1116 w (asynchronous signals to critical programs.) 720 1236 w 10 /LucidaSans-Demi f (The User Interface) 720 1476 w 10 /LucidaSansUnicode00 f (One) 720 1632 w (unusual) 958 1632 w (property) 1383 1632 w (of) 1839 1632 w (the) 1979 1632 w (plumbing) 2176 1632 w (system) 2681 1632 w (is) 3064 1632 w (that) 3187 1632 w (the) 3421 1632 w (user) 3619 1632 w (interface) 3872 1632 w (that) 4339 1632 w (programs) 4573 1632 w (provide) 720 1752 w (to) 1123 1752 w (access) 1259 1752 w (it) 1612 1752 w (can) 1716 1752 w (vary) 1922 1752 w (considerably,) 2160 1752 w (yet) 2843 1752 w (the) 3026 1752 w (result) 3219 1752 w (is) 3533 1752 w (nonetheless) 3650 1752 w (a) 4270 1752 w (unifying) 4362 1752 w (force) 4794 1752 w (in) 720 1872 w (the) 845 1872 w (environment.) 1034 1872 w (Shells) 1743 1872 w (talk) 2059 1872 w (to) 2273 1872 w (editors,) 2406 1872 w (image) 2811 1872 w (viewers,) 3141 1872 w (and) 3570 1872 w (web) 3785 1872 w (browsers;) 4016 1872 w (debuggers) 4524 1872 w (talk to editors; editors talk to themselves; and the window system talks to everybody.) 720 1992 w (The) 720 2148 w (plumber) 949 2148 w (grew) 1404 2148 w (out) 1688 2148 w (of) 1896 2148 w (some) 2042 2148 w (of) 2351 2148 w (the) 2497 2148 w (ideas) 2700 2148 w (of) 3002 2148 w (the) 3148 2148 w (Acme) 3352 2148 w (editor/window-system/user) 3670 2148 w (interface) 720 2268 w ([Pike94],) 1199 2268 w (in) 1676 2268 w (particular) 1822 2268 w (its) 2340 2268 w 10 /LucidaSansUnicode20 f (\030) 2512 2268 w 10 /LucidaSansUnicode00 f (acquisition) 2544 2268 w 10 /LucidaSansUnicode20 f (\031) 3073 2268 w 10 /LucidaSansUnicode00 f (feature.) 3160 2268 w (With) 3622 2268 w (a) 3890 2268 w (three-button) 3999 2268 w (mouse,) 4685 2268 w (clicking) 720 2388 w (the) 1135 2388 w (right) 1334 2388 w (button) 1609 2388 w (in) 1975 2388 w (Acme) 2110 2388 w (on) 2423 2388 w (a) 2590 2388 w (piece) 2689 2388 w (of) 2988 2388 w (text) 3131 2388 w (tells) 3367 2388 w (Acme) 3614 2388 w (to) 3928 2388 w (get) 4071 2388 w (the) 4271 2388 w (thing) 4471 2388 w (being) 4768 2388 w (pointed) 720 2508 w (to.) 1124 2508 w (If) 1319 2508 w (it) 1418 2508 w (is) 1517 2508 w (a) 1630 2508 w (file) 1718 2508 w (name,) 1902 2508 w (open) 2233 2508 w (the) 2508 2508 w (file;) 2696 2508 w (if) 2912 2508 w (it) 3011 2508 w (is) 3110 2508 w (a) 3223 2508 w (directory,) 3311 2508 w (open) 3807 2508 w (a) 4082 2508 w (viewer for its con\255) 4170 2508 w (tents;) 720 2628 w (if) 1033 2628 w (a) 1138 2628 w (line) 1232 2628 w (number,) 1447 2628 w (go) 1895 2628 w (to) 2057 2628 w (that) 2194 2628 w (line;) 2424 2628 w (if) 2671 2628 w (a) 2776 2628 w (regular) 2870 2628 w (expression,) 3255 2628 w (search) 3857 2628 w (for) 4212 2628 w (it.) 4390 2628 w (This) 4559 2628 w (one-) 4803 2628 w (click) 720 2748 w (access) 980 2748 w (to) 1337 2748 w (anything) 1477 2748 w (describable) 1940 2748 w (textually) 2538 2748 w (was) 2997 2748 w (very) 3221 2748 w (powerful) 3463 2748 w (but) 3930 2748 w (had) 4133 2748 w (several) 4354 2748 w (limita\255) 4735 2748 w (tions,) 720 2868 w (of) 1027 2868 w (which) 1160 2868 w (the) 1476 2868 w (most) 1666 2868 w (important) 1943 2868 w (were) 2456 2868 w (that) 2722 2868 w (Acme) 2949 2868 w 10 /LucidaSansUnicode20 f (\031) 3218 2868 w 10 /LucidaSansUnicode00 f (s) 3250 2868 w (rules) 3337 2868 w (for) 3612 2868 w (interpreting) 3787 2868 w (the) 4398 2868 w (text) 4589 2868 w (\(that) 4816 2868 w (is,) 720 2988 w (the) 869 2988 w (implicit) 1061 2988 w (hyperlinks\)) 1458 2988 w (were) 2031 2988 w (hard-wired) 2298 2988 w (and) 2880 2988 w (inflexible,) 3097 2988 w (and) 3617 2988 w (that) 3834 2988 w (they) 4062 2988 w (only) 4306 2988 w (applied) 4547 2988 w (to) 4942 2988 w (and) 720 3108 w (within) 954 3108 w (Acme) 1304 3108 w (itself.) 1627 3108 w (One) 1984 3108 w (could) 2234 3108 w (not,) 2554 3108 w (for) 2800 3108 w (example,) 2993 3108 w (use) 3492 3108 w (Acme) 3715 3108 w 10 /LucidaSansUnicode20 f (\031) 3984 3108 w 10 /LucidaSansUnicode00 f (s) 4016 3108 w (power) 4121 3108 w (to) 4473 3108 w (open) 4626 3108 w (an) 4923 3108 w (image file, since Acme is a text-only system.) 720 3228 w (The) 720 3384 w (plumber) 953 3384 w (addresses) 1412 3384 w (these) 1951 3384 w (limitations,) 2265 3384 w (even) 2861 3384 w (with) 3139 3384 w (Acme) 3396 3384 w (itself:) 3717 3384 w (Acme) 4040 3384 w (now) 4361 3384 w (uses) 4613 3384 w (the) 4885 3384 w (plumber) 720 3504 w (to) 1170 3504 w (interpret) 1311 3504 w (the) 1776 3504 w (right) 1973 3504 w (button) 2246 3504 w (clicks) 2610 3504 w (for) 2921 3504 w (it.) 3102 3504 w (When) 3274 3504 w (the) 3582 3504 w (right) 3779 3504 w (button) 4052 3504 w (is) 4416 3504 w (clicked) 4538 3504 w (on) 4917 3504 w (some) 720 3624 w (text,) 1025 3624 w (Acme) 1292 3624 w (constructs) 1605 3624 w (a) 2153 3624 w (plumbing) 2252 3624 w (message) 2759 3624 w (much) 3228 3624 w (as) 3541 3624 w (described) 3692 3624 w (above,) 4210 3624 w (using) 4574 3624 w (the) 4885 3624 w 10 /LucidaTypewriter f (click) 720 3744 w 10 /LucidaSansUnicode00 f (attribute) 1140 3744 w (and) 1617 3744 w (the) 1857 3744 w (white-space-delimited) 2071 3744 w (text) 3238 3744 w (surrounding) 3488 3744 w (the) 4143 3744 w (click.) 4357 3744 w (It) 4698 3744 w (then) 4823 3744 w (writes) 720 3864 w (the) 1047 3864 w (message) 1238 3864 w (to) 1698 3864 w (the) 1832 3864 w (plumber;) 2023 3864 w (if) 2499 3864 w (the) 2602 3864 w (write) 2794 3864 w (succeeds,) 3071 3864 w (all) 3581 3864 w (is) 3731 3864 w (well.) 3848 3864 w (If) 4140 3864 w (not,) 4243 3864 w (it) 4472 3864 w (falls) 4575 3864 w (back) 4813 3864 w (to) 720 3984 w (its) 851 3984 w (original,) 1001 3984 w (internal) 1434 3984 w (rules,) 1838 3984 w (which) 2142 3984 w (will) 2456 3984 w (result) 2653 3984 w (in) 2962 3984 w (a) 3086 3984 w (context) 3174 3984 w (search) 3572 3984 w (for) 3921 3984 w (the) 4093 3984 w (word) 4281 3984 w (within) 4556 3984 w (the) 4885 3984 w (current document.) 720 4104 w (If) 720 4260 w (the) 829 4260 w (message) 1027 4260 w (is) 1494 4260 w (sent) 1617 4260 w (successfully,) 1866 4260 w (the) 2523 4260 w (recipient) 2722 4260 w (is) 3190 4260 w (likely) 3314 4260 w (to) 3611 4260 w (be) 3753 4260 w (Acme) 3916 4260 w (itself,) 4229 4260 w (of) 4544 4260 w (course:) 4686 4260 w (the) 720 4380 w (request) 909 4380 w (may) 1309 4380 w (be) 1543 4380 w (to) 1696 4380 w (open) 1828 4380 w (a) 2104 4380 w (file,) 2193 4380 w (for) 2410 4380 w (example.) 2583 4380 w (Thus) 3094 4380 w (Acme) 3366 4380 w (has) 3668 4380 w (turned) 3869 4380 w (the) 4223 4380 w (plumber) 4411 4380 w (into) 4851 4380 w (an) 720 4500 w (external) 871 4500 w (component) 1302 4500 w (of) 1882 4500 w (its) 2014 4500 w (own) 2165 4500 w (operation,) 2399 4500 w (while) 2930 4500 w (expanding) 3217 4500 w (the) 3764 4500 w (possibilities;) 3953 4500 w (the) 4597 4500 w (oper\255) 4786 4500 w (ation) 720 4620 w (might) 1005 4620 w (be) 1329 4620 w (to) 1489 4620 w (start) 1628 4620 w (an) 1890 4620 w (image) 2047 4620 w (viewer) 2382 4620 w (to) 2733 4620 w (open) 2871 4620 w (a) 3153 4620 w (picture) 3248 4620 w (file,) 3627 4620 w (something) 3850 4620 w (Acme) 4403 4620 w (cannot) 4712 4620 w (do itself.) 720 4740 w (The plumber expands the power of Acme) 1211 4740 w 10 /LucidaSansUnicode20 f (\031) 3222 4740 w 10 /LucidaSansUnicode00 f (s original user interface.) 3254 4740 w (Traditional) 720 4896 w (menu-driven) 1277 4896 w (programs) 1944 4896 w (such) 2444 4896 w (as) 2703 4896 w (the) 2842 4896 w (text) 3030 4896 w (editor) 3254 4896 w (Sam) 3575 4896 w ([Pike87b]) 3811 4896 w (and) 4298 4896 w (the) 4512 4896 w (default) 4701 4896 w (shell) 720 5016 w (window) 987 5016 w (of) 1396 5016 w (the) 1534 5016 w (window) 1729 5016 w (system) 2138 5016 w 10 /LucidaTypewriter f (8\275) 2517 5016 w 10 /LucidaSansUnicode00 f ([Pike91]) 2700 5016 w (cannot) 3129 5016 w (dedicate) 3496 5016 w (a) 3945 5016 w (mouse) 4039 5016 w (button) 4401 5016 w (solely) 4762 5016 w (to) 720 5136 w (plumbing,) 858 5136 w (but) 1393 5136 w (they) 1595 5136 w (can) 1843 5136 w (certainly) 2052 5136 w (dedicate) 2505 5136 w (a) 2956 5136 w (menu) 3052 5136 w (entry.) 3366 5136 w (The) 3719 5136 w (editing) 3941 5136 w (menu) 4320 5136 w (for) 4634 5136 w (such) 4814 5136 w (programs) 720 5256 w (now) 1234 5256 w (contains) 1481 5256 w (an) 1936 5256 w (entry,) 2099 5256 w 10 /LucidaTypewriter f (plumb) 2425 5256 w 10 /LucidaSansUnicode00 f (,) 2785 5256 w (that) 2863 5256 w (creates) 3100 5256 w (a) 3493 5256 w (plumbing) 3594 5256 w (message) 4103 5256 w (using) 4573 5256 w (the) 4885 5256 w (current) 720 5376 w (selection.) 1112 5376 w (\(Acme) 1650 5376 w (manages) 1994 5376 w (to) 2470 5376 w (send) 2610 5376 w (a) 2884 5376 w (message) 2981 5376 w (by) 3447 5376 w (clicking) 3604 5376 w (on) 4017 5376 w (the) 4182 5376 w (text) 4379 5376 w (with) 4613 5376 w (one) 4861 5376 w (button;) 720 5496 w (other) 1119 5496 w (programs) 1421 5496 w (require) 1933 5496 w (a) 2326 5496 w (click) 2426 5496 w (with) 2689 5496 w (the) 2939 5496 w (select) 3139 5496 w (button) 3464 5496 w (and) 3830 5496 w (then) 4054 5496 w (a) 4315 5496 w (menu) 4414 5496 w (opera\255) 4731 5496 w (tion.\)) 720 5616 w (For example, after this happens in a shell window:) 1038 5616 w 9 /LucidaTypewriter f (%) 1008 5786 w (make) 1138 5786 w (cc) 1008 5896 w (-c) 1203 5896 w (shaney.c) 1398 5896 w (shaney.c:232:) 1008 6006 w (i) 1918 6006 w (undefined) 2048 6006 w (...) 1008 6116 w 10 /LucidaSansUnicode00 f (one can click anywhere on the) 720 6296 w (string) 2217 6296 w 10 /LucidaTypewriter f (shaney.c:232) 2532 6296 w 10 /LucidaSansUnicode00 f (,) 3396 6296 w (execute) 3461 6296 w (the) 3873 6296 w 10 /LucidaTypewriter f (plumb) 4061 6296 w 10 /LucidaSansUnicode00 f (menu) 4454 6296 w (entry,) 4760 6296 w (and) 720 6416 w (have) 953 6416 w (line) 1231 6416 w (232) 1460 6416 w (appear) 1702 6416 w (in) 2088 6416 w (the) 2232 6416 w (text) 2440 6416 w (editor,) 2684 6416 w (be) 3056 6416 w (it) 3228 6416 w (Sam) 3347 6416 w (or) 3602 6416 w (Acme) 3757 6416 w 10 /LucidaSansUnicode20 f (\024) 4026 6416 w 10 /LucidaSansUnicode00 f (whichever) 4126 6416 w (has) 4665 6416 w (the) 4885 6416 w 10 /LucidaTypewriter f (edit) 720 6536 w 10 /LucidaSansUnicode00 f (port) 1053 6536 w (open.) 1300 6536 w (\(If) 1651 6536 w (this) 1796 6536 w (were) 2021 6536 w (an) 2297 6536 w (Acme) 2460 6536 w (shell) 2775 6536 w (window,) 3048 6536 w (it) 3495 6536 w (would) 3607 6536 w (be) 3945 6536 w (sufficient) 4110 6536 w (to) 4607 6536 w (right-) 4751 6536 w (click on the string.\)) 720 6656 w ([An interesting side line is how the window system knows what directory) 720 6812 w (the) 4281 6812 w (shell) 4469 6812 w (is) 4729 6812 w (run\255) 4842 6812 w (ning) 720 6932 w (in;) 980 6932 w (in) 1147 6932 w (other) 1282 6932 w (words,) 1583 6932 w (what) 1952 6932 w (value) 2227 6932 w (to) 2525 6932 w (place) 2667 6932 w (in) 2965 6932 w (the) 3100 6932 w 10 /LucidaTypewriter f (wdir) 3299 6932 w 10 /LucidaSansUnicode00 f (field) 3631 6932 w (of) 3889 6932 w (the) 4031 6932 w (plumb) 4230 6932 w (message.) 4584 6932 w (Recall) 720 7052 w (that) 1051 7052 w 10 /LucidaTypewriter f (8\275) 1290 7052 w 10 /LucidaSansUnicode00 f (is,) 1482 7052 w (like) 1642 7052 w (many) 1862 7052 w (Plan) 2172 7052 w (9) 2421 7052 w (programs,) 2532 7052 w (a) 3079 7052 w (file) 3182 7052 w (server.) 3381 7052 w (It) 3790 7052 w (now) 3904 7052 w (serves) 4153 7052 w (a) 4509 7052 w (new) 4613 7052 w (file,) 4857 7052 w 10 /LucidaTypewriter f (/dev/wdir) 720 7172 w 10 /LucidaSansUnicode00 f (,) 1368 7172 w (that) 1443 7172 w (is) 1677 7172 w (private) 1800 7172 w (to) 2176 7172 w (each) 2317 7172 w (window.) 2584 7172 w (Programs,) 3060 7172 w (in) 3594 7172 w (particular) 3728 7172 w (the) 4234 7172 w (Plan) 4432 7172 w (9) 4676 7172 w (shell,) 4781 7172 w 10 /LucidaTypewriter f (rc) 720 7292 w 10 /LucidaSansUnicode00 f (,) 864 7292 w (can) 932 7292 w (write) 1136 7292 w (that) 1412 7292 w (file) 1639 7292 w (to) 1826 7292 w (inform) 1960 7292 w (the) 2319 7292 w (window) 2510 7292 w (system) 2916 7292 w (of) 3293 7292 w (its) 3428 7292 w (current) 3582 7292 w (directory.) 3969 7292 w (When) 4501 7292 w (a) 4804 7292 w 10 /LucidaTypewriter f (cd) 4896 7292 w cleartomark showpage saveobj restore %%EndPage: 9 9 %%Page: 10 10 /saveobj save def mark 10 pagesetup 10 /LucidaSansUnicode00 f (\255 10 \255) 2752 480 w (command) 720 840 w (is) 1240 840 w (executed) 1362 840 w (in) 1846 840 w (an) 1979 840 w (interactive) 2138 840 w (shell,) 2685 840 w 10 /LucidaTypewriter f (rc) 2986 840 w 10 /LucidaSansUnicode00 f (updates) 3171 840 w (the) 3599 840 w (contents) 3795 840 w (of) 4253 840 w 10 /LucidaTypewriter f (/dev/wdir) 4392 840 w 10 /LucidaSansUnicode00 f (and plumbing can proceed with local file names.]) 720 960 w (Of) 720 1116 w (course,) 875 1116 w (users) 1269 1116 w (can) 1570 1116 w (plumb) 1778 1116 w (image) 2128 1116 w (file) 2464 1116 w (names,) 2656 1116 w (process) 3046 1116 w (ids,) 3461 1116 w (URLs,) 3677 1116 w (and) 3986 1116 w (other) 4207 1116 w (items) 4505 1116 w 10 /LucidaSansUnicode20 f (\024) 4771 1116 w 10 /LucidaSansUnicode00 f (any) 4871 1116 w (string) 720 1236 w (whose) 1039 1236 w (syntax) 1383 1236 w (and) 1738 1236 w (disposition) 1955 1236 w (are) 2527 1236 w (defined) 2715 1236 w (in) 3117 1236 w (the) 3244 1236 w (plumbing) 3435 1236 w (rules) 3934 1236 w (file.) 4209 1236 w (An) 4460 1236 w (example) 4627 1236 w (of) 720 1356 w (how) 864 1356 w (the) 1110 1356 w (pieces) 1311 1356 w (fit) 1663 1356 w (together) 1812 1356 w (is) 2270 1356 w (the) 2396 1356 w (way) 2597 1356 w (Plan) 2827 1356 w (9) 3074 1356 w (now) 3183 1356 w (handles) 3429 1356 w (mail,) 3853 1356 w (particularly) 4137 1356 w (MIME-) 4727 1356 w (encoded messages.) 720 1476 w (When) 720 1632 w (a) 1022 1632 w (new) 1113 1632 w (mail) 1344 1632 w (message) 1586 1632 w (arrives,) 2046 1632 w (the) 2439 1632 w (mail) 2631 1632 w (receiver) 2874 1632 w (process) 3293 1632 w (sends) 3704 1632 w (a) 4024 1632 w (plumbing) 4116 1632 w (message) 4616 1632 w (to) 720 1752 w (the) 856 1752 w 10 /LucidaTypewriter f (newmail) 1049 1752 w 10 /LucidaSansUnicode00 f (port,) 1591 1752 w (which) 1863 1752 w (notifies) 2182 1752 w (any) 2581 1752 w (interested) 2787 1752 w (process) 3312 1752 w (that) 3723 1752 w (new) 3951 1752 w (mail) 4183 1752 w (is) 4426 1752 w (here.) 4543 1752 w (The) 4859 1752 w (plumbing) 720 1872 w (message) 1222 1872 w (contains) 1685 1872 w (information) 2132 1872 w (about) 2739 1872 w (the) 3057 1872 w (mail,) 3252 1872 w (including) 3530 1872 w (its) 4019 1872 w (sender,) 4176 1872 w (date,) 4577 1872 w (and) 4860 1872 w (current) 720 1992 w (location) 1103 1992 w (in) 1521 1992 w (the file system.) 1645 1992 w (The interested processes include a program,) 2451 1992 w 10 /LucidaTypewriter f (faces) 4648 1992 w 10 /LucidaSansUnicode00 f (,) 5008 1992 w (that) 720 2112 w (gives) 956 2112 w (a) 1251 2112 w (graphical) 1351 2112 w (display) 1843 2112 w (of) 2230 2112 w (the) 2373 2112 w (mail) 2573 2112 w (box) 2824 2112 w (using) 3054 2112 w (faces) 3366 2112 w (to) 3662 2112 w (represent) 3806 2112 w (the) 4315 2112 w (senders) 4516 2112 w (of) 4942 2112 w (messages) 720 2232 w ([PiPr85],) 1241 2232 w (as) 1691 2232 w (well) 1842 2232 w (as) 2078 2232 w (interactive) 2229 2232 w (mail) 2779 2232 w (programs) 3030 2232 w (such) 3542 2232 w (as) 3813 2232 w (the) 3964 2232 w (Acme) 4164 2232 w (mail) 4478 2232 w (viewer) 4729 2232 w ([Pike94].) 720 2352 w (The) 1208 2352 w (user) 1423 2352 w (can) 1667 2352 w (then) 1869 2352 w (click) 2120 2352 w (on) 2372 2352 w (the) 2529 2352 w (face) 2718 2352 w (that) 2951 2352 w (appears,) 3176 2352 w (and) 3626 2352 w (the) 3840 2352 w 10 /LucidaTypewriter f (faces) 4030 2352 w 10 /LucidaSansUnicode00 f (program) 4425 2352 w (will) 4876 2352 w (send) 720 2472 w (another) 989 2472 w (plumbing) 1400 2472 w (message,) 1900 2472 w (this) 2393 2472 w (time) 2609 2472 w (to) 2861 2472 w (the) 2996 2472 w 10 /LucidaTypewriter f (showmail) 3188 2472 w 10 /LucidaSansUnicode00 f (port.) 3801 2472 w (Here) 4104 2472 w (is) 4368 2472 w (the) 4485 2472 w (rule) 4677 2472 w (for) 4901 2472 w (that port:) 720 2592 w 9 /LucidaTypewriter f (#) 1008 2762 w (faces) 1138 2762 w (->) 1528 2762 w (new) 1723 2762 w (mail) 1983 2762 w (window) 2308 2762 w (for) 2763 2762 w (message) 3023 2762 w (type) 1008 2872 w (is) 1333 2872 w (text) 1528 2872 w (data) 1008 2982 w (matches) 1333 2982 w ('[a-zA-Z0-9_\\-./]+') 1853 2982 w (data) 1008 3092 w (matches) 1333 3092 w ('/mail/fs/[a-zA-Z0-9/]+/[0-9]+') 1853 3092 w (plumb) 1008 3202 w (to) 1398 3202 w (showmail) 1593 3202 w (plumb) 1008 3312 w (start) 1398 3312 w (window) 1788 3312 w (edmail) 2243 3312 w (-s) 2698 3312 w ($0) 2893 3312 w 10 /LucidaSansUnicode00 f (If) 720 3492 w (a) 822 3492 w (program,) 913 3492 w (such) 1397 3492 w (as) 1659 3492 w (the) 1801 3492 w (Acme) 1992 3492 w (mail) 2297 3492 w (reader,) 2539 3492 w (is) 2919 3492 w (reading) 3035 3492 w (that) 3439 3492 w (port,) 3666 3492 w (it) 3936 3492 w (will) 4038 3492 w (open) 4238 3492 w (a) 4516 3492 w (new) 4607 3492 w (win\255) 4839 3492 w (dow) 720 3612 w (in) 961 3612 w (which) 1092 3612 w (to) 1413 3612 w (display) 1551 3612 w (the) 1933 3612 w (message.) 2128 3612 w (If) 2656 3612 w (not,) 2762 3612 w (the) 2994 3612 w 10 /LucidaTypewriter f (plumb) 3188 3612 w (start) 3587 3612 w 10 /LucidaSansUnicode00 f (rule) 3986 3612 w (will) 4213 3612 w (create) 4416 3612 w (a) 4751 3612 w (new) 4845 3612 w (window) 720 3732 w (and) 1134 3732 w (run) 1359 3732 w 10 /LucidaTypewriter f (edmail) 1569 3732 w 10 /LucidaSansUnicode00 f (,) 2001 3732 w (a) 2078 3732 w (conventional) 2178 3732 w (mail) 2840 3732 w (reading) 3091 3732 w (process,) 3504 3732 w (to) 3955 3732 w (examine) 4098 3732 w (it.) 4556 3732 w (Notice) 4732 3732 w (how) 720 3852 w (the) 973 3852 w (plumbing) 1181 3852 w (connects) 1697 3852 w (the) 2181 3852 w (components) 2389 3852 w (of) 3039 3852 w (the) 3190 3852 w (interface) 3398 3852 w (together) 3875 3852 w (the) 4340 3852 w (same) 4548 3852 w (way) 4856 3852 w (regardless of which components are actually being used to view mail.) 720 3972 w (There) 720 4128 w (is) 1036 4128 w (more) 1154 4128 w (to) 1443 4128 w (the) 1579 4128 w (mail) 1772 4128 w (story.) 2016 4128 w (Naturally,) 2360 4128 w (mail) 2865 4128 w (boxes) 3110 4128 w (in) 3441 4128 w (Plan) 3571 4128 w (9) 3811 4128 w (are) 3913 4128 w (treated) 4104 4128 w (as) 4488 4128 w (little) 4633 4128 w (file) 4889 4128 w (systems,) 720 4248 w (which) 1179 4248 w (are) 1496 4248 w (synthesized) 1684 4248 w (on) 2296 4248 w (demand) 2455 4248 w (by) 2883 4248 w (a) 3034 4248 w (special-purpose) 3125 4248 w (file) 3949 4248 w (server) 4135 4248 w (that) 4467 4248 w (takes) 4693 4248 w (a) 4985 4248 w (flat) 720 4368 w (mail) 913 4368 w (box) 1154 4368 w (file) 1374 4368 w (and) 1560 4368 w (converts) 1775 4368 w (it) 2221 4368 w (into) 2322 4368 w (a) 2546 4368 w (set) 2637 4368 w (of) 2817 4368 w (directories,) 2951 4368 w (one) 3534 4368 w (per) 3749 4368 w (message,) 3945 4368 w (with) 4437 4368 w (compo\255) 4678 4368 w (nent) 720 4488 w (files) 980 4488 w (containing) 1225 4488 w (the) 1778 4488 w (header,) 1976 4488 w (body,) 2384 4488 w (MIME) 2698 4488 w (information,) 2996 4488 w (and) 3638 4488 w (so) 3861 4488 w (on.) 4016 4488 w (Multi-part) 4246 4488 w (MIME) 4785 4488 w (messages are unpacked into multi-level directories, like this:) 720 4608 w 9 /LucidaTypewriter f (%) 1008 4778 w (ls) 1138 4778 w (-l) 1333 4778 w (/mail/fs/mbox/25) 1528 4778 w (d-r-xr-xr-x) 1008 4888 w (M) 1788 4888 w (20) 1918 4888 w (rob) 2113 4888 w (rob) 2373 4888 w (0) 2893 4888 w (Nov) 3023 4888 w (21) 3283 4888 w (13:06) 3478 4888 w (/mail/fs/mbox/25/1) 3868 4888 w (d-r-xr-xr-x) 1008 4998 w (M) 1788 4998 w (20) 1918 4998 w (rob) 2113 4998 w (rob) 2373 4998 w (0) 2893 4998 w (Nov) 3023 4998 w (21) 3283 4998 w (13:06) 3478 4998 w (/mail/fs/mbox/25/2) 3868 4998 w (--r--r--r--) 1008 5108 w (M) 1788 5108 w (20) 1918 5108 w (rob) 2113 5108 w (rob) 2373 5108 w (28678) 2633 5108 w (Nov) 3023 5108 w (21) 3283 5108 w (13:06) 3478 5108 w (/mail/fs/mbox/25/body) 3868 5108 w (--r--r--r--) 1008 5218 w (M) 1788 5218 w (20) 1918 5218 w (rob) 2113 5218 w (rob) 2373 5218 w (0) 2893 5218 w (Nov) 3023 5218 w (21) 3283 5218 w (13:06) 3478 5218 w (/mail/fs/mbox/25/cc) 3868 5218 w (...) 1008 5328 w (%) 1008 5438 w (mail) 1138 5438 w (25) 1008 5548 w (messages) 1203 5548 w (:) 1008 5658 w (25) 1138 5658 w (From:) 1008 5768 w (presotto) 1398 5768 w (Date:) 1008 5878 w (Sun) 1398 5878 w (Nov) 1658 5878 w (21) 1918 5878 w (13:05:51) 2113 5878 w (EST) 2698 5878 w (1999) 2958 5878 w (To:) 1008 5988 w (rob) 1268 5988 w (Check) 1008 6208 w (this) 1398 6208 w (out.) 1723 6208 w (===>) 1008 6428 w (2/) 1333 6428 w (\(image/jpeg\)) 1528 6428 w ([inline]) 2373 6428 w (/mail/fs/mbox/25/2/fabio.jpg) 1528 6538 w (:) 1008 6648 w 10 /LucidaSansUnicode00 f (Since) 720 6828 w (the) 1021 6828 w (components) 1225 6828 w (are) 1872 6828 w (all) 2074 6828 w (\(synthetic\)) 2237 6828 w (files,) 2790 6828 w (the) 3074 6828 w (user) 3279 6828 w (can) 3539 6828 w (plumb) 3757 6828 w (the) 4117 6828 w (pieces) 4322 6828 w (to) 4678 6828 w (view) 4826 6828 w (embedded) 720 6948 w (pictures,) 1276 6948 w (URLs,) 1741 6948 w (and) 2052 6948 w (so) 2275 6948 w (on.) 2430 6948 w (Note) 2660 6948 w (that) 2931 6948 w (the) 3165 6948 w (mail) 3363 6948 w (program) 3612 6948 w (can) 4071 6948 w (plumb) 4282 6948 w (the) 4635 6948 w (con\255) 4833 6948 w (tents) 720 7068 w (of) 1010 7068 w 10 /LucidaTypewriter f (inline) 1155 7068 w 10 /LucidaSansUnicode00 f (attachments) 1634 7068 w (automatically,) 2277 7068 w (without) 3001 7068 w (user) 3413 7068 w (interaction;) 3671 7068 w (in) 4271 7068 w (other) 4410 7068 w (words,) 4715 7068 w (plumbing lets the mailer handle multimedia data without itself interpreting it.) 720 7188 w cleartomark showpage saveobj restore %%EndPage: 10 10 %%Page: 11 11 /saveobj save def mark 11 pagesetup 10 /LucidaSansUnicode00 f (\255 11 \255) 2752 480 w (At a more mundane level, a shell command,) 720 840 w 10 /LucidaTypewriter f (plumb) 2887 840 w 10 /LucidaSansUnicode00 f (, can be used to send messages:) 3247 840 w 9 /LucidaTypewriter f (%) 1008 1010 w (cd) 1138 1010 w (/usr/rob/src) 1333 1010 w (%) 1008 1120 w (plumb) 1138 1120 w (mem.c) 1528 1120 w 10 /LucidaSansUnicode00 f (will) 720 1300 w (send) 929 1300 w (the) 1206 1300 w (appropriate) 1406 1300 w (message) 2015 1300 w (to) 2484 1300 w (the) 2627 1300 w 10 /LucidaTypewriter f (edit) 2827 1300 w 10 /LucidaSansUnicode00 f (port.) 3160 1300 w (A) 3471 1300 w (surprising) 3585 1300 w (use) 4121 1300 w (of) 4335 1300 w (the) 4479 1300 w 10 /LucidaTypewriter f (plumb) 4680 1300 w 10 /LucidaSansUnicode00 f (command) 720 1420 w (is) 1238 1420 w (in) 1357 1420 w (actions) 1487 1420 w (within) 1872 1420 w (the) 2207 1420 w (plumbing) 2401 1420 w (rules) 2903 1420 w (file.) 3181 1420 w (In) 3435 1420 w (our) 3565 1420 w (lab,) 3768 1420 w (we) 3986 1420 w (commonly) 4158 1420 w (receive) 4699 1420 w (Microsoft) 720 1540 w (Word) 1216 1540 w (documents) 1509 1540 w (by) 2087 1540 w (mail,) 2244 1540 w (but) 2524 1540 w (we) 2728 1540 w (do) 2903 1540 w (not) 3069 1540 w (run) 3271 1540 w (Microsoft) 3478 1540 w (operating) 3974 1540 w (systems) 4483 1540 w (on) 4917 1540 w (our) 720 1660 w (machines) 932 1660 w (so) 1439 1660 w (we) 1599 1660 w (cannot) 1780 1660 w (view) 2156 1660 w (them) 2418 1660 w (without) 2714 1660 w (at) 3127 1660 w (least) 3267 1660 w (rebooting.) 3543 1660 w (Therefore,) 4127 1660 w (when) 4680 1660 w (a) 4985 1660 w (Word) 720 1780 w (document) 1008 1780 w (arrives) 1530 1780 w (in) 1892 1780 w (mail,) 2020 1780 w (we) 2296 1780 w (could) 2467 1780 w (plumb) 2771 1780 w (the) 3119 1780 w 10 /LucidaTypewriter f (.doc) 3312 1780 w 10 /LucidaSansUnicode00 f (file) 3638 1780 w (but) 3827 1780 w (the) 4027 1780 w (text) 4220 1780 w (editor) 4449 1780 w (could) 4774 1780 w (not) 720 1900 w (decode) 917 1900 w (it.) 1304 1900 w (However,) 1471 1900 w (we) 1957 1900 w (have) 2127 1900 w (a) 2389 1900 w (program,) 2481 1900 w 10 /LucidaTypewriter f (doc2txt) 2966 1900 w 10 /LucidaSansUnicode00 f (,) 3470 1900 w (that) 3539 1900 w (decodes) 3766 1900 w (the) 4203 1900 w (Word) 4394 1900 w (file) 4681 1900 w (for\255) 4868 1900 w (mat) 720 2020 w (to) 961 2020 w (extract) 1115 2020 w (and) 1509 2020 w (format) 1745 2020 w (the) 2125 2020 w (embedded) 2336 2020 w (text.) 2905 2020 w (The) 3216 2020 w (solution) 3453 2020 w (is) 3902 2020 w (to) 4039 2020 w (use) 4194 2020 w 10 /LucidaTypewriter f (plumb) 4420 2020 w 10 /LucidaSansUnicode00 f (in) 4837 2020 w (a) 4985 2020 w 10 /LucidaTypewriter f (plumb) 720 2140 w (start) 1126 2140 w 10 /LucidaSansUnicode00 f (action) 1532 2140 w (to) 1873 2140 w (invoke) 2017 2140 w 10 /LucidaTypewriter f (doc2txt) 2381 2140 w 10 /LucidaSansUnicode00 f (on) 2931 2140 w 10 /LucidaTypewriter f (.doc) 3100 2140 w 10 /LucidaSansUnicode00 f (files) 3434 2140 w (and) 3682 2140 w (synthesize) 3908 2140 w (a) 4466 2140 w (plain) 4566 2140 w (text) 4849 2140 w (file:) 720 2260 w 9 /LucidaTypewriter f (#) 1008 2430 w (rule) 1138 2430 w (set) 1463 2430 w (for) 1723 2430 w (microsoft) 1983 2430 w (word) 2633 2430 w (documents) 2958 2430 w (type) 1008 2540 w (is) 1333 2540 w (text) 1528 2540 w (data) 1008 2650 w (matches) 1333 2650 w ('[a-zA-Z0-9_\\-./]+') 1853 2650 w (data) 1008 2760 w (matches) 1333 2760 w ('\([a-zA-Z0-9_\\-./]+\)\\.doc') 1853 2760 w (arg) 1008 2870 w (isfile) 1268 2870 w ($0) 1723 2870 w (plumb) 1008 2980 w (start) 1398 2980 w (doc2txt) 1788 2980 w ($data) 2308 2980 w (|) 2698 2980 w (\\) 2828 2980 w (plumb) 1268 3090 w (-i) 1658 3090 w (-d) 1853 3090 w (edit) 2048 3090 w (-a) 2373 3090 w (action=showdata) 2568 3090 w (-a) 3608 3090 w (filename=$0) 3803 3090 w 10 /LucidaSansUnicode00 f (The) 720 3270 w (arguments) 934 3270 w (to) 1486 3270 w 10 /LucidaTypewriter f (plumb) 1618 3270 w 10 /LucidaSansUnicode00 f (tell) 2012 3270 w (it) 2197 3270 w (to) 2297 3270 w (take) 2429 3270 w (standard) 2669 3270 w (input) 3130 3270 w (as) 3417 3270 w (its) 3557 3270 w (data) 3708 3270 w (rather) 3952 3270 w (than) 4278 3270 w (the) 4528 3270 w (text) 4717 3270 w (of) 4942 3270 w (the) 720 3390 w (arguments) 932 3390 w (\() 1508 3390 w 10 /LucidaTypewriter f (-i) 1541 3390 w 10 /LucidaSansUnicode00 f (\),) 1685 3390 w (define) 1807 3390 w (the) 2167 3390 w (destination) 2378 3390 w (port) 2976 3390 w (\() 3234 3390 w 10 /LucidaTypewriter f (-d) 3267 3390 w (edit) 3467 3390 w 10 /LucidaSansUnicode00 f (\),) 3755 3390 w (and) 3876 3390 w (set) 4112 3390 w (a) 4312 3390 w (conventional) 4423 3390 w (attribute) 720 3510 w (so) 1174 3510 w (the) 1323 3510 w (editor) 1515 3510 w (knows) 1839 3510 w (to) 2185 3510 w (show) 2320 3510 w (the) 2608 3510 w (message) 2800 3510 w (data) 3261 3510 w (itself) 3509 3510 w (rather) 3786 3510 w (than) 4116 3510 w (interpret) 4370 3510 w (it) 4830 3510 w (as) 4934 3510 w (a) 720 3630 w (file) 857 3630 w (name) 1090 3630 w (\() 1438 3630 w 10 /LucidaTypewriter f (-a) 1471 3630 w (action=showdata) 1697 3630 w 10 /LucidaSansUnicode00 f (\)) 2777 3630 w (and) 2892 3630 w (provide) 3153 3630 w (the) 3599 3630 w (original) 3835 3630 w (file) 4284 3630 w (name) 4516 3630 w (\() 4863 3630 w 10 /LucidaTypewriter f (-a) 4896 3630 w (filename=$0) 720 3750 w 10 /LucidaSansUnicode00 f (\).) 1512 3750 w (Now) 1649 3750 w (when) 1901 3750 w (a) 2198 3750 w (user) 2293 3750 w (plumbs) 2543 3750 w (a) 2944 3750 w 10 /LucidaTypewriter f (.doc) 3039 3750 w 10 /LucidaSansUnicode00 f (file) 3368 3750 w (the) 3560 3750 w (plumbing) 3756 3750 w (rules) 4260 3750 w (run) 4540 3750 w (a) 4746 3750 w (pro\255) 4842 3750 w (cess) 720 3870 w (to) 975 3870 w (extract) 1119 3870 w (the) 1503 3870 w (text) 1704 3870 w (and) 1941 3870 w (send) 2167 3870 w (it) 2445 3870 w (as) 2557 3870 w (a) 2709 3870 w (temporary) 2810 3870 w (file) 3355 3870 w (to) 3552 3870 w (the) 3696 3870 w (editor) 3897 3870 w (for) 4230 3870 w (viewing.) 4415 3870 w (It) 4891 3870 w 10 /LucidaSansUnicode20 f (\031) 4957 3870 w 10 /LucidaSansUnicode00 f (s) 4989 3870 w (imperfect, but it) 720 3990 w 10 /LucidaSansUnicode20 f (\031) 1507 3990 w 10 /LucidaSansUnicode00 f (s easy and it beats rebooting.) 1539 3990 w (Another) 720 4146 w (simple) 1156 4146 w (example) 1525 4146 w (is) 1986 4146 w (a) 2114 4146 w (rule) 2217 4146 w (that) 2453 4146 w (turns) 2693 4146 w (man) 2995 4146 w (pages) 3254 4146 w (into) 3590 4146 w (hypertext.) 3828 4146 w (Manual) 4406 4146 w (page) 4804 4146 w (entries) 720 4266 w (of) 1088 4266 w (the) 1222 4266 w (form) 1413 4266 w 10 /LucidaTypewriter f (plumber\(1\)) 1681 4266 w 10 /LucidaSansUnicode00 f (can) 2437 4266 w (be) 2641 4266 w (clicked) 2796 4266 w (on) 3169 4266 w (to) 3328 4266 w (pop) 3462 4266 w (up) 3685 4266 w (a) 3846 4266 w (window) 3936 4266 w (containing) 4340 4266 w (the) 4885 4266 w (formatted) 720 4386 w 10 /LucidaSansUnicode20 f (\030) 1245 4386 w 10 /LucidaSansUnicode00 f (man) 1277 4386 w (page) 1532 4386 w 10 /LucidaSansUnicode20 f (\031) 1768 4386 w 10 /LucidaSansUnicode00 f (.) 1800 4386 w (That) 1909 4386 w (man) 2171 4386 w (page) 2426 4386 w (will) 2707 4386 w (in) 2916 4386 w (turn) 3052 4386 w (contain) 3299 4386 w (more) 3701 4386 w (such) 3997 4386 w (citations,) 4269 4386 w (which) 4759 4386 w (will also be clickable.) 720 4506 w (The rule is a little like that for Word documents:) 1812 4506 w 9 /LucidaTypewriter f (#) 1008 4676 w (man) 1138 4676 w (index) 1398 4676 w (entries) 1788 4676 w (are) 2308 4676 w (synthesized) 2568 4676 w (type) 1008 4786 w (is) 1333 4786 w (text) 1528 4786 w (data) 1008 4896 w (matches) 1333 4896 w ('\([a-zA-Z0-9_\\-./]+\)\\\(\([0-9]\)\\\)') 1853 4896 w (plumb) 1008 5006 w (start) 1398 5006 w (man) 1788 5006 w ($2) 2048 5006 w ($1) 2243 5006 w (|) 2438 5006 w (\\) 2568 5006 w (plumb) 1268 5116 w (-i) 1658 5116 w (-d) 1853 5116 w (edit) 2048 5116 w (-a) 2373 5116 w (action=showdata) 2568 5116 w (-a) 3608 5116 w (filename=/man/$1\($2\)) 3803 5116 w 10 /LucidaSansUnicode00 f (There) 720 5332 w (are) 1041 5332 w (many) 1236 5332 w (other) 1541 5332 w (inventive) 1841 5332 w (uses) 2319 5332 w (of) 2582 5332 w (plumbing.) 2723 5332 w (One) 3293 5332 w (more) 3532 5332 w (should) 3826 5332 w (give) 4197 5332 w (some) 4439 5332 w (of) 4743 5332 w (the) 4885 5332 w (flavor.) 720 5452 w (We) 1099 5452 w (have) 1281 5452 w (a) 1546 5452 w (shell) 1641 5452 w (script,) 1908 5452 w 10 /LucidaTypewriter f (src) 2252 5452 w 10 /LucidaSansUnicode00 f (,) 2468 5452 w (that) 2540 5452 w (takes) 2771 5452 w (as) 3068 5452 w (argument) 3214 5452 w (the) 3722 5452 w (name) 3916 5452 w (of) 4221 5452 w (an) 4358 5452 w (executable) 4514 5452 w (binary) 720 5572 w (file.) 1056 5572 w (It) 1305 5572 w (examines) 1405 5572 w (the) 1902 5572 w (symbol) 2091 5572 w (table) 2474 5572 w (of) 2748 5572 w (the) 2880 5572 w (binary) 3069 5572 w (to) 3405 5572 w (find) 3537 5572 w (the) 3762 5572 w (source) 3951 5572 w (file) 4307 5572 w (from) 4492 5572 w (which) 4759 5572 w (it) 720 5692 w (was) 823 5692 w (compiled.) 1043 5692 w (Since) 1589 5692 w (the) 1878 5692 w (Plan) 2070 5692 w (9) 2308 5692 w (compilers) 2408 5692 w (place) 2919 5692 w (full) 3210 5692 w (source) 3404 5692 w (path) 3763 5692 w (names) 4017 5692 w (in) 4371 5692 w (the) 4499 5692 w (symbol) 4691 5692 w (table,) 720 5812 w 10 /LucidaTypewriter f (src) 1034 5812 w 10 /LucidaSansUnicode00 f (can) 1292 5812 w (discover) 1502 5812 w (the) 1948 5812 w (complete) 2145 5812 w (file) 2634 5812 w (name.) 2828 5812 w (That) 3201 5812 w (is) 3461 5812 w (then) 3584 5812 w (passed) 3844 5812 w (to) 4226 5812 w 10 /LucidaTypewriter f (plumb) 4367 5812 w 10 /LucidaSansUnicode00 f (,) 4727 5812 w (com\255) 4802 5812 w (plete with the line number to find the symbol) 720 5932 w 10 /LucidaTypewriter f (main) 2955 5932 w 10 /LucidaSansUnicode00 f (.) 3243 5932 w (For example,) 3339 5932 w 9 /LucidaTypewriter f (%) 1008 6102 w (src) 1138 6102 w (plumb) 1398 6102 w 10 /LucidaSansUnicode00 f (is) 720 6282 w (all) 834 6282 w (it) 981 6282 w (takes) 1081 6282 w (to) 1372 6282 w (pop) 1504 6282 w (up) 1725 6282 w (an) 1884 6282 w (editor) 2035 6282 w (window) 2356 6282 w (on) 2759 6282 w (the) 2916 6282 w 10 /LucidaTypewriter f (main) 3106 6282 w 10 /LucidaSansUnicode00 f (routine) 3429 6282 w (of) 3812 6282 w (the) 3945 6282 w 10 /LucidaTypewriter f (plumb) 4135 6282 w 10 /LucidaSansUnicode00 f (command,) 4530 6282 w (beginning) 720 6402 w (at) 1280 6402 w (line) 1444 6402 w (39) 1692 6402 w (of) 1890 6402 w 10 /LucidaTypewriter f (/sys/src/cmd/plumb/plumb.c) 2060 6402 w 10 /LucidaSansUnicode00 f (.) 3932 6402 w (Like) 4068 6402 w (most) 4336 6402 w (uses) 4650 6402 w (of) 4942 6402 w (plumbing, this is not a breakthrough in functionality, but it is a great convenience.) 720 6522 w 10 /LucidaSans-Demi f (Why This Architecture?) 720 6762 w 10 /LucidaSansUnicode00 f (The) 720 6918 w (design) 937 6918 w (of) 1296 6918 w (the) 1430 6918 w (plumbing) 1621 6918 w (system) 2120 6918 w (is) 2496 6918 w (peculiar:) 2612 6918 w (a) 3066 6918 w (centralized) 3157 6918 w (language-based) 3729 6918 w (file) 4555 6918 w (server) 4743 6918 w (does) 720 7038 w (most) 998 7038 w (of) 1287 7038 w (the) 1432 7038 w (work,) 1634 7038 w (while) 1950 7038 w (compared) 2250 7038 w (to) 2780 7038 w (other) 2925 7038 w (systems) 3228 7038 w (the) 3665 7038 w (applications) 3866 7038 w (themselves) 4497 7038 w (contribute relatively little.) 720 7158 w (This architecture is deliberate, of course.) 2032 7158 w (That) 720 7314 w (the) 985 7314 w (plumber) 1188 7314 w 10 /LucidaSansUnicode20 f (\031) 1595 7314 w 10 /LucidaSansUnicode00 f (s) 1627 7314 w (behavior) 1726 7314 w (is) 2193 7314 w (derived) 2321 7314 w (from) 2730 7314 w (a) 3011 7314 w (linguistic) 3115 7314 w (description) 3605 7314 w (gives) 4197 7314 w (the) 4496 7314 w (system) 4700 7314 w cleartomark showpage saveobj restore %%EndPage: 11 11 %%Page: 12 12 /saveobj save def mark 12 pagesetup 10 /LucidaSansUnicode00 f (\255 12 \255) 2752 480 w (great) 720 840 w (flexibility) 1041 840 w (and) 1562 840 w (dynamism) 1812 840 w 10 /LucidaSansUnicode20 f (\024) 2310 840 w 10 /LucidaSansUnicode00 f (rules) 2410 840 w (can) 2719 840 w (be) 2957 840 w (added) 3146 840 w (and) 3516 840 w (changed) 3766 840 w (at) 4247 840 w (will,) 4409 840 w (without) 4675 840 w (rebooting) 720 960 w 10 /LucidaSansUnicode20 f (\024) 1192 960 w 10 /LucidaSansUnicode00 f (but) 1292 960 w (the) 1497 960 w (existence) 1695 960 w (of) 2197 960 w (a) 2338 960 w (central) 2436 960 w (library) 2810 960 w (of) 3163 960 w (rules) 3305 960 w (ensures) 3588 960 w (that,) 4011 960 w (for) 4278 960 w (most) 4461 960 w (users,) 4747 960 w (the environment behaves in well-established ways.) 720 1080 w (That) 720 1236 w (the) 971 1236 w (plumber) 1160 1236 w (is) 1601 1236 w (a) 1715 1236 w (file) 1804 1236 w (server) 1989 1236 w (is) 2320 1236 w (perhaps) 2434 1236 w (the) 2859 1236 w (most) 3048 1236 w (unusual) 3324 1236 w (aspect) 3741 1236 w (of) 4088 1236 w (its) 4221 1236 w (design,) 4373 1236 w (but) 4763 1236 w (is) 4960 1236 w (also) 720 1356 w (one) 949 1356 w (of) 1161 1356 w (the) 1292 1356 w (most) 1480 1356 w (important.) 1755 1356 w (Messages) 2330 1356 w (are passed by regular I/O operations on files,) 2831 1356 w (so) 720 1476 w (no) 876 1476 w (extra) 1043 1476 w (technology) 1337 1476 w (such) 1914 1476 w (as) 2184 1476 w (remote) 2334 1476 w (procedure) 2723 1476 w (call) 3262 1476 w (or) 3471 1476 w (request) 3618 1476 w (brokers) 4029 1476 w (needs) 4445 1476 w (to) 4778 1476 w (be) 4921 1476 w (provided;) 720 1596 w (messages) 1214 1596 w (are) 1723 1596 w (transmitted) 1909 1596 w (by) 2504 1596 w (familiar) 2653 1596 w (means.) 3055 1596 w (Almost) 3470 1596 w (every) 3844 1596 w (service) 4135 1596 w (in) 4505 1596 w (Plan) 4630 1596 w (9) 4864 1596 w (is) 4960 1596 w (a) 720 1716 w (file) 812 1716 w (server,) 1000 1716 w (so) 1366 1716 w (services) 1516 1716 w (can) 1941 1716 w (be) 2147 1716 w (exported) 2304 1716 w (trivially) 2780 1716 w (using) 3171 1716 w (the) 3475 1716 w (system) 3668 1716 w 10 /LucidaSansUnicode20 f (\031) 4008 1716 w 10 /LucidaSansUnicode00 f (s) 4040 1716 w (remote) 4129 1716 w (file) 4511 1716 w (system) 4700 1716 w (operations) 720 1836 w ([Pike93].) 1283 1836 w (The) 1784 1836 w (plumber) 2012 1836 w (is) 2466 1836 w (no) 2592 1836 w (exception;) 2761 1836 w (plumbing) 3315 1836 w (messages) 3824 1836 w (pass) 4345 1836 w (routinely) 4611 1836 w (across) 720 1956 w (the) 1071 1956 w (network) 1268 1956 w (to) 1702 1956 w (remote) 1842 1956 w (applications) 2228 1956 w (without) 2855 1956 w (any) 3262 1956 w (special) 3473 1956 w (provision,) 3849 1956 w (in) 4372 1956 w (contrast) 4505 1956 w (to) 4942 1956 w (some) 720 2076 w (commercial) 1027 2076 w (IPC) 1632 2076 w (mechanisms) 1831 2076 w (that) 2480 2076 w (become) 2717 2076 w (significantly) 3143 2076 w (more) 3774 2076 w (complex) 4071 2076 w (when) 4531 2076 w (they) 4833 2076 w (involve) 720 2196 w (multiple) 1100 2196 w (machines.) 1537 2196 w (As) 2099 2196 w (I) 2258 2196 w (write) 2326 2196 w (this,) 2605 2196 w (my) 2855 2196 w (window) 3039 2196 w (system) 3447 2196 w (is) 3826 2196 w (talking) 3945 2196 w (to) 4317 2196 w (applications) 4455 2196 w (running) 720 2316 w (on) 1136 2316 w (three) 1295 2316 w (different) 1583 2316 w (machines,) 2037 2316 w (but) 2564 2316 w (they) 2762 2316 w (all) 3005 2316 w (share) 3154 2316 w (a) 3455 2316 w (single) 3546 2316 w (instance) 3871 2316 w (of) 4310 2316 w (the) 4443 2316 w (plumber) 4633 2316 w (and) 720 2436 w (so) 944 2436 w (can) 1101 2436 w (interoperate) 1314 2436 w (to) 1953 2436 w (integrate) 2096 2436 w (my) 2576 2436 w (environment.) 2766 2436 w (Plan) 3486 2436 w (9) 3732 2436 w (uses) 3840 2436 w (a) 4105 2436 w (shared) 4205 2436 w (file) 4578 2436 w (name) 4774 2436 w (space) 720 2556 w (to) 1057 2556 w (combine) 1216 2556 w (multiple) 1692 2556 w (networked) 2151 2556 w (machines) 2723 2556 w 10 /LucidaSansUnicode20 f (\024) 3182 2556 w 10 /LucidaSansUnicode00 f (compute) 3282 2556 w (servers,) 3766 2556 w (file) 4207 2556 w (servers,) 4419 2556 w (and) 4860 2556 w (interactive) 720 2676 w (workstations) 1266 2676 w 10 /LucidaSansUnicode20 f (\024) 1886 2676 w 10 /LucidaSansUnicode00 f (into) 1986 2676 w (a) 2216 2676 w (single) 2312 2676 w (computing) 2642 2676 w (environment;) 3203 2676 w (plumbing) 3887 2676 w 10 /LucidaSansUnicode20 f (\031) 4350 2676 w 10 /LucidaSansUnicode00 f (s) 4382 2676 w (design) 4474 2676 w (as) 4838 2676 w (a) 4985 2676 w (file) 720 2796 w (server) 907 2796 w (is) 1240 2796 w (a) 1356 2796 w (natural) 1447 2796 w (by-product) 1824 2796 w (of,) 2411 2796 w (and) 2577 2796 w (contributor) 2793 2796 w (to,) 3374 2796 w (the) 3539 2796 w (overall) 3729 2796 w (system) 4087 2796 w (architecture) 4462 2796 w ([Pike92].) 720 2916 w (The) 720 3072 w (centrality) 934 3072 w (of) 1416 3072 w (the) 1547 3072 w (plumber) 1735 3072 w (is) 2175 3072 w (also) 2288 3072 w (unusual.) 2517 3072 w (Other) 2997 3072 w (systems) 3304 3072 w (tend) 3728 3072 w (to) 3979 3072 w (let) 4110 3072 w (the) 4266 3072 w (applications) 4455 3072 w (determine) 720 3192 w (where) 1257 3192 w (messages) 1593 3192 w (will) 2112 3192 w (go;) 2320 3192 w (consider) 2519 3192 w (mail) 2976 3192 w (readers) 3225 3192 w (that) 3631 3192 w (recognize) 3865 3192 w (and) 4383 3192 w (highlight) 4606 3192 w (URLs) 720 3312 w (in) 997 3312 w (the) 1129 3312 w (messages.) 1325 3312 w (Why) 1905 3312 w (should) 2147 3312 w (just) 2517 3312 w (the) 2739 3312 w (mail) 2936 3312 w (readers) 3184 3312 w (do) 3589 3312 w (this,) 3755 3312 w (and) 4008 3312 w (why) 4230 3312 w (should) 4463 3312 w (they) 4833 3312 w (just) 720 3432 w (do) 933 3432 w (it) 1090 3432 w (for) 1189 3432 w (URLs?) 1361 3432 w (\(Acme was guilty of similar crimes.\)) 1704 3432 w (The plumber, by removing such) 3495 3432 w (decisions) 720 3552 w (to) 1219 3552 w (a) 1363 3552 w (central) 1464 3552 w (authority,) 1841 3552 w (guarantees) 2355 3552 w (that) 2938 3552 w (all) 3175 3552 w (applications) 3334 3552 w (behave) 3965 3552 w (the) 4356 3552 w (same) 4558 3552 w (and) 4860 3552 w (simultaneously) 720 3672 w (frees) 1498 3672 w (them) 1788 3672 w (all) 2085 3672 w (from) 2247 3672 w (figuring) 2528 3672 w (out) 2961 3672 w (what) 3170 3672 w 10 /LucidaSansUnicode20 f (\031) 3401 3672 w 10 /LucidaSansUnicode00 f (s) 3433 3672 w (important.) 3533 3672 w (The) 4124 3672 w (ability) 4354 3672 w (for) 4697 3672 w (the) 4885 3672 w (plumber) 720 3792 w (to) 1169 3792 w (excerpt) 1309 3792 w (useful) 1716 3792 w (data) 2055 3792 w (from) 2307 3792 w (within) 2581 3792 w (a) 2919 3792 w (message) 3016 3792 w (is) 3482 3792 w (critical) 3604 3792 w (to) 3968 3792 w (the) 4108 3792 w (success) 4305 3792 w (of) 4720 3792 w (this) 4861 3792 w (model.) 720 3912 w (The) 720 4068 w (entire) 943 4068 w (system) 1266 4068 w (is) 1649 4068 w (remarkably) 1772 4068 w (small.) 2358 4068 w (The) 2722 4068 w (plumber) 2946 4068 w (itself) 3396 4068 w (is) 3678 4068 w (only) 3801 4068 w (about) 4048 4068 w (two) 4369 4068 w (thousand) 4587 4068 w (lines) 720 4188 w (of) 987 4188 w (C) 1125 4188 w (code.) 1234 4188 w (Most) 1569 4188 w (applications) 1844 4188 w (work) 2469 4188 w (fine) 2746 4188 w (in) 2969 4188 w (a) 3099 4188 w (plumbing) 3193 4188 w (environment) 3695 4188 w (without) 4345 4188 w (know\255) 4749 4188 w (ing) 720 4308 w (about) 907 4308 w (it) 1219 4308 w (at) 1319 4308 w (all;) 1445 4308 w (some) 1624 4308 w (need) 1919 4308 w (trivial) 2190 4308 w (changes) 2496 4308 w (such) 2929 4308 w (as) 3189 4308 w (to) 3329 4308 w (standardize) 3461 4308 w (their) 4064 4308 w (error) 4323 4308 w (output;) 4597 4308 w (a) 4985 4308 w (few) 720 4428 w (need) 937 4428 w (to) 1221 4428 w (generate) 1366 4428 w (and) 1838 4428 w (receive) 2065 4428 w (plumbing) 2453 4428 w (messages.) 2963 4428 w (But) 3549 4428 w (even) 3753 4428 w (to) 4026 4428 w (add) 4171 4428 w (the) 4399 4428 w (ability) 4601 4428 w (to) 4942 4428 w (send) 720 4548 w (and) 985 4548 w (receive) 1198 4548 w (messages) 1572 4548 w (in) 2080 4548 w (a) 2204 4548 w (program) 2292 4548 w (such) 2741 4548 w (as) 3000 4548 w (text) 3139 4548 w (editor) 3363 4548 w (is) 3683 4548 w (short) 3796 4548 w (work,) 4081 4548 w (involving) 4383 4548 w (typ\255) 4855 4548 w (ically a few dozen lines of code.) 720 4668 w (Plumbing fits well into the existing environment.) 2333 4668 w (But) 720 4824 w (plumbing) 912 4824 w (is) 1410 4824 w (new) 1525 4824 w (and) 1756 4824 w (it) 1972 4824 w (hasn) 2074 4824 w 10 /LucidaSansUnicode20 f (\031) 2304 4824 w 10 /LucidaSansUnicode00 f (t) 2336 4824 w (been) 2409 4824 w (pushed) 2682 4824 w (far) 3075 4824 w (enough) 3244 4824 w (yet.) 3645 4824 w (Most) 3890 4824 w (of) 4161 4824 w (the) 4295 4824 w (work) 4486 4824 w (so) 4759 4824 w (far) 4907 4824 w (has) 720 4944 w (been) 926 4944 w (with) 1201 4944 w (textual) 1444 4944 w (messages,) 1819 4944 w (although) 2364 4944 w (the) 2831 4944 w (underlying) 3023 4944 w (system) 3578 4944 w (is) 3955 4944 w (capable) 4072 4944 w (of) 4481 4944 w (handling) 4616 4944 w (general) 720 5064 w (data.) 1118 5064 w (We) 1429 5064 w (plan) 1608 5064 w (to) 1854 5064 w (reimplement) 1990 5064 w (some) 2643 5064 w (of) 2942 5064 w (the) 3078 5064 w (existing) 3271 5064 w (data) 3696 5064 w (movement) 3944 5064 w (operations,) 4492 5064 w (such) 720 5184 w (as) 981 5184 w (cut) 1122 5184 w (and) 1307 5184 w (paste) 1522 5184 w (or) 1819 5184 w (drag) 1956 5184 w (and) 2212 5184 w (drop,) 2427 5184 w (to) 2722 5184 w (use) 2855 5184 w (plumbing) 3059 5184 w (as) 3557 5184 w (their) 3698 5184 w (exchange) 3957 5184 w (mechanism.) 4456 5184 w (Since) 720 5304 w (the) 1008 5304 w (plumber) 1199 5304 w (is) 1642 5304 w (a) 1758 5304 w (central) 1849 5304 w (message) 2216 5304 w (handler,) 2676 5304 w (it) 3112 5304 w (is) 3215 5304 w (an) 3332 5304 w (obvious) 3486 5304 w (place) 3902 5304 w (to) 4193 5304 w (store) 4328 5304 w (the) 4611 5304 w 10 /LucidaSansUnicode20 f (\030) 4803 5304 w 10 /LucidaSansUnicode00 f (clip\255) 4835 5304 w (board) 720 5424 w 10 /LucidaSansUnicode20 f (\031) 1003 5424 w 10 /LucidaSansUnicode00 f (.) 1035 5424 w (The) 1139 5424 w (clipboard) 1360 5424 w (could) 1855 5424 w (be) 2161 5424 w (built) 2320 5424 w (as) 2580 5424 w (a) 2726 5424 w (special) 2821 5424 w (port) 3195 5424 w (that) 3437 5424 w (holds) 3668 5424 w (onto) 3974 5424 w (messages) 4234 5424 w (rather) 4748 5424 w (than deleting them after delivery.) 720 5544 w (Since the clipboard would then be holding) 2406 5544 w (a) 4489 5544 w (plumbing) 4577 5544 w (message) 720 5664 w (rather) 1186 5664 w (than) 1520 5664 w (plain) 1778 5664 w (text,) 2058 5664 w (as) 2323 5664 w (in) 2471 5664 w (the) 2603 5664 w (current) 2799 5664 w (Plan) 3190 5664 w (9) 3432 5664 w (environment,) 3536 5664 w (it) 4220 5664 w (would) 4327 5664 w (become) 4660 5664 w (possible) 720 5784 w (to) 1156 5784 w (cut) 1287 5784 w (and) 1470 5784 w (paste) 1683 5784 w (arbitrary) 1978 5784 w (data) 2425 5784 w (without) 2668 5784 w (providing) 3067 5784 w (new) 3563 5784 w (mechanism.) 3792 5784 w (In) 4442 5784 w (effect,) 4567 5784 w (we) 4907 5784 w (would be providing a new user interface to the existing plumbing facilities.) 720 5904 w (Another) 720 6060 w (possible) 1151 6060 w (extension) 1597 6060 w (is) 2115 6060 w (the) 2238 6060 w (ability) 2436 6060 w (to) 2773 6060 w (override) 2914 6060 w (plumbing) 3356 6060 w (operations) 3862 6060 w (interactively.) 4422 6060 w (Originally,) 720 6180 w (the) 1271 6180 w (plan) 1479 6180 w (was) 1741 6180 w (to) 1977 6180 w (provide) 2128 6180 w (a) 2546 6180 w (mechanism,) 2653 6180 w (perhaps) 3289 6180 w (a) 3732 6180 w (pop-up) 3839 6180 w (menu,) 4261 6180 w (that) 4618 6180 w (one) 4861 6180 w (could) 720 6300 w (use) 1026 6300 w (to) 1235 6300 w (direct) 1373 6300 w (messages,) 1690 6300 w (for) 2237 6300 w (example) 2416 6300 w (to) 2869 6300 w (send) 3007 6300 w (a) 3279 6300 w (PostScript) 3374 6300 w (file) 3893 6300 w (to) 4085 6300 w (the) 4224 6300 w (editor) 4420 6300 w (rather) 4748 6300 w (than) 720 6420 w (the) 977 6420 w (PostScript) 1173 6420 w (viewer) 1693 6420 w (by) 2045 6420 w (naming) 2201 6420 w (an) 2605 6420 w (explicit) 2763 6420 w (destination) 3159 6420 w (in) 3742 6420 w (the) 3873 6420 w (message.) 4068 6420 w (Although) 4596 6420 w (this) 720 6540 w (deficiency) 932 6540 w (should) 1451 6540 w (one) 1812 6540 w (day) 2024 6540 w (be) 2227 6540 w (addressed,) 2379 6540 w (it) 2943 6540 w (should) 3042 6540 w (be) 3403 6540 w (done) 3555 6540 w (without) 3830 6540 w (complicating) 4229 6540 w (the) 4885 6540 w (interface) 720 6660 w (for) 1184 6660 w (invoking) 1363 6660 w (the) 1818 6660 w (default) 2013 6660 w (behavior.) 2392 6660 w (Meanwhile,) 2914 6660 w (in) 3497 6660 w (practice) 3627 6660 w (the) 4049 6660 w (default) 4243 6660 w (behavior) 4621 6660 w (seems) 720 6780 w (to) 1067 6780 w (work) 1205 6780 w (very) 1482 6780 w (well) 1723 6780 w (in) 1954 6780 w (practice) 2085 6780 w 10 /LucidaSansUnicode20 f (\024) 2468 6780 w 10 /LucidaSansUnicode00 f (as) 2568 6780 w (it) 2714 6780 w (must) 2820 6780 w (if) 3103 6780 w (plumbing) 3209 6780 w (is) 3712 6780 w (to) 3832 6780 w (be) 3971 6780 w (successful) 4131 6780 w 10 /LucidaSansUnicode20 f (\024) 4632 6780 w 10 /LucidaSansUnicode00 f (so) 4732 6780 w (the) 4885 6780 w (lack of overrides is not keenly felt.) 720 6900 w cleartomark showpage saveobj restore %%EndPage: 12 12 %%Page: 13 13 /saveobj save def mark 13 pagesetup 10 /LucidaSansUnicode00 f (\255 13 \255) 2752 480 w 10 /LucidaSans-Demi f (Comparison with Other Systems) 720 840 w 10 /LucidaSansUnicode00 f (The) 720 996 w (ideas) 947 996 w (of) 1248 996 w (the) 1393 996 w (plumbing) 1595 996 w (system) 2105 996 w (grew) 2492 996 w (from) 2775 996 w (an) 3054 996 w (attempt) 3218 996 w (to) 3643 996 w (generalize) 3788 996 w (the) 4338 996 w (way) 4540 996 w (Acme) 4771 996 w (acquires) 720 1116 w (files) 1173 1116 w (and) 1420 1116 w (data.) 1645 1116 w (Systems) 1964 1116 w (further) 2403 1116 w (from) 2784 1116 w (that) 3060 1116 w (lineage) 3295 1116 w (also) 3688 1116 w (share) 3928 1116 w (some) 4237 1116 w (properties) 4542 1116 w (with) 720 1236 w (plumbing.) 965 1236 w (Most,) 1532 1236 w (however,) 1839 1236 w (require) 2316 1236 w (explicit) 2704 1236 w (linking) 3099 1236 w (or) 3470 1236 w (message) 3612 1236 w (passing) 4077 1236 w (rather) 4491 1236 w (than) 4824 1236 w (plumbing) 720 1356 w 10 /LucidaSansUnicode20 f (\031) 1183 1356 w 10 /LucidaSansUnicode00 f (s) 1215 1356 w (implicit,) 1333 1356 w (context-based) 1792 1356 w (pattern) 2570 1356 w (matching,) 2988 1356 w (and) 3538 1356 w (none) 3785 1356 w (has) 4093 1356 w (the) 4328 1356 w (plumber) 4550 1356 w 10 /LucidaSansUnicode20 f (\031) 4957 1356 w 10 /LucidaSansUnicode00 f (s) 4989 1356 w (design of a language-based file server.) 720 1476 w (Reiss) 720 1632 w 10 /LucidaSansUnicode20 f (\031) 970 1632 w 10 /LucidaSansUnicode00 f (s) 1002 1632 w (FIELD) 1098 1632 w (system) 1408 1632 w ([Reis95]) 1793 1632 w (probably) 2229 1632 w (comes) 2701 1632 w (the) 3058 1632 w (closest) 3258 1632 w (to) 3640 1632 w (providing) 3784 1632 w (the) 4292 1632 w (facilities) 4493 1632 w (of) 4942 1632 w (the) 720 1752 w (plumber.) 921 1752 w (It) 1438 1752 w (has) 1550 1752 w (a) 1764 1752 w (central) 1865 1752 w (message-passing) 2242 1752 w (mechanism) 3143 1752 w (that) 3741 1752 w (connects) 3978 1752 w (applications) 4455 1752 w (together) 720 1872 w (through) 1182 1872 w (a) 1619 1872 w (combination) 1724 1872 w (of) 2377 1872 w (a) 2525 1872 w (library) 2630 1872 w (and) 2990 1872 w (a) 3220 1872 w (pattern-matching) 3325 1872 w (central) 4235 1872 w (message) 4616 1872 w (dispatcher) 720 1992 w (that) 1264 1992 w (handles) 1491 1992 w (message) 1905 1992 w (send) 2364 1992 w (and) 2631 1992 w (reply.) 2846 1992 w (The) 3186 1992 w (main) 3402 1992 w (differences) 3676 1992 w (between) 4250 1992 w (FIELD) 4692 1992 w 10 /LucidaSansUnicode20 f (\031) 4957 1992 w 10 /LucidaSansUnicode00 f (s) 4989 1992 w (message) 720 2112 w (dispatcher) 1187 2112 w (and) 1738 2112 w (the) 1961 2112 w (plumber) 2159 2112 w (are) 2609 2112 w (first) 2804 2112 w (that) 3042 2112 w (the) 3276 2112 w (plumber) 3475 2112 w (is) 3926 2112 w (based) 4050 2112 w (on) 4382 2112 w (a) 4549 2112 w (special-) 4648 2112 w (purpose) 720 2232 w (language) 1162 2232 w (while) 1650 2232 w (the) 1948 2232 w (FIELD) 2148 2232 w (system) 2458 2232 w (uses) 2843 2232 w (an) 3108 2232 w (object-oriented) 3270 2232 w (library,) 4075 2232 w (second) 4461 2232 w (that) 4849 2232 w (the) 720 2352 w (plumber) 916 2352 w (has) 1364 2352 w (no) 1573 2352 w (concept) 1737 2352 w (of) 2159 2352 w (a) 2298 2352 w (reply) 2394 2352 w (to) 2676 2352 w (a) 2815 2352 w (message,) 2911 2352 w (and) 3408 2352 w (finally) 3629 2352 w (that) 3963 2352 w (the) 4196 2352 w (FIELD) 4393 2352 w (system) 4700 2352 w (has) 720 2472 w (no) 924 2472 w (concept) 1083 2472 w (of) 1500 2472 w (port.) 1634 2472 w (But) 1936 2472 w (the) 2129 2472 w (key) 2319 2472 w (distinction) 2520 2472 w (is) 3066 2472 w (probably) 3181 2472 w (in) 3643 2472 w (the) 3769 2472 w (level) 3959 2472 w (of) 4216 2472 w (use.) 4349 2472 w (In) 4617 2472 w (FIELD,) 4743 2472 w (the) 720 2592 w (message) 926 2592 w (dispatcher) 1401 2592 w (is) 1960 2592 w (a) 2091 2592 w (critical) 2197 2592 w (integrating) 2570 2592 w (force) 3153 2592 w (of) 3451 2592 w (the) 3601 2592 w (underlying) 3808 2592 w (programming) 4378 2592 w (environment,) 720 2712 w (handling) 1429 2712 w (everything) 1919 2712 w (from) 2494 2712 w (debugging) 2792 2712 w (events) 3378 2712 w (to) 3757 2712 w (changing) 3920 2712 w (the) 4430 2712 w (working) 4650 2712 w (directory) 720 2832 w (of) 1189 2832 w (a) 1325 2832 w (program.) 1418 2832 w (Plumbing,) 1936 2832 w (by) 2461 2832 w (contrast,) 2614 2832 w (is) 3079 2832 w (intended) 3198 2832 w (primarily) 3665 2832 w (for) 4136 2832 w (integrating) 4314 2832 w (the) 4885 2832 w (user) 720 2952 w (interface) 972 2952 w (of) 1438 2952 w (existing) 1578 2952 w (tools;) 2007 2952 w (it) 2320 2952 w (is) 2428 2952 w (more) 2550 2952 w (modest) 2843 2952 w (and) 3246 2952 w (very) 3468 2952 w (much) 3711 2952 w (simpler.) 4020 2952 w (The) 4487 2952 w (central) 4709 2952 w (advantage) 720 3072 w (of) 1256 3072 w (the) 1393 3072 w (plumber) 1587 3072 w (is) 2033 3072 w (its) 2152 3072 w (convenience) 2308 3072 w (and) 2945 3072 w (dynamism;) 3164 3072 w (the) 3733 3072 w (FIELD) 3927 3072 w (system) 4231 3072 w (does) 4610 3072 w (not) 4880 3072 w (share the ease with which message dispatch rules can be added or modified.) 720 3192 w (The) 720 3348 w (inspiration) 944 3348 w (for) 1506 3348 w (Acme) 1688 3348 w (was) 2001 3348 w (the) 2228 3348 w (user) 2427 3348 w (interface) 2681 3348 w (to) 3149 3348 w (the) 3291 3348 w (object-oriented) 3490 3348 w (Oberon) 4295 3348 w (system) 4700 3348 w ([WiGu92].) 720 3468 w (Oberon) 1314 3468 w 10 /LucidaSansUnicode20 f (\031) 1675 3468 w 10 /LucidaSansUnicode00 f (s) 1707 3468 w (user) 1847 3468 w (interface) 2146 3468 w (interprets) 2659 3468 w (mouse) 3220 3468 w (clicks) 3631 3468 w (on) 3988 3468 w (strings) 4199 3468 w (such) 4620 3468 w (as) 4934 3468 w 10 /LucidaTypewriter f (Obj.meth) 720 3588 w 10 /LucidaSansUnicode00 f (to) 1334 3588 w (invoke) 1470 3588 w (calls) 1826 3588 w (to) 2079 3588 w (the) 2215 3588 w (method) 2408 3588 w 10 /LucidaTypewriter f (meth) 2818 3588 w 10 /LucidaSansUnicode00 f (of) 3144 3588 w (the) 3280 3588 w (object) 3473 3588 w 10 /LucidaTypewriter f (Obj) 3809 3588 w 10 /LucidaSansUnicode00 f (.) 4025 3588 w (This) 4127 3588 w (was) 4370 3588 w (the) 4592 3588 w (start\255) 4786 3588 w (ing) 720 3708 w (point) 913 3708 w (for) 1205 3708 w (Acme) 1384 3708 w 10 /LucidaSansUnicode20 f (\031) 1653 3708 w 10 /LucidaSansUnicode00 f (s) 1685 3708 w (middle-button) 1776 3708 w (execution) 2529 3708 w ([Pike94],) 3044 3708 w (but) 3506 3708 w (nothing) 3708 3708 w (in) 4123 3708 w (Oberon) 4253 3708 w (is) 4653 3708 w (much) 4772 3708 w (like) 720 3828 w (Acme) 944 3828 w 10 /LucidaSansUnicode20 f (\031) 1213 3828 w 10 /LucidaSansUnicode00 f (s) 1245 3828 w (right-button) 1349 3828 w 10 /LucidaSansUnicode20 f (\030) 2013 3828 w 10 /LucidaSansUnicode00 f (acquisition) 2045 3828 w 10 /LucidaSansUnicode20 f (\031) 2574 3828 w 10 /LucidaSansUnicode00 f (,) 2606 3828 w (which) 2691 3828 w (was) 3025 3828 w (the) 3261 3828 w (starting) 3469 3828 w (point) 3896 3828 w (for) 4201 3828 w (the) 4393 3828 w (plumber.) 4601 3828 w (Oberon) 720 3948 w 10 /LucidaSansUnicode20 f (\031) 1081 3948 w 10 /LucidaSansUnicode00 f (s) 1113 3948 w (implicit) 1199 3948 w (method-based) 1594 3948 w (linking) 2347 3948 w (is) 2713 3948 w (not) 2827 3948 w (nearly) 3021 3948 w (as) 3350 3948 w (general) 3490 3948 w (as) 3885 3948 w (the) 4025 3948 w (pattern-matched) 4214 3948 w (linking) 720 4068 w (of) 1087 4068 w (the) 1221 4068 w (plumber,) 1412 4068 w (nor) 1887 4068 w (does) 2087 4068 w (its) 2354 4068 w (style) 2507 4068 w (of) 2768 4068 w (user-triggered) 2902 4068 w (method) 3653 4068 w (call) 4061 4068 w (correspond) 4262 4068 w (well) 4849 4068 w (to the more general idea of inter-application communication of plumbing messages.) 720 4188 w (Microsoft) 720 4344 w 10 /LucidaSansUnicode20 f (\031) 1174 4344 w 10 /LucidaSansUnicode00 f (s) 1206 4344 w (OLE) 1294 4344 w (interface) 1516 4344 w (is) 1977 4344 w (another) 2094 4344 w (relative.) 2505 4344 w (It) 2961 4344 w (allows) 3064 4344 w (one) 3403 4344 w (application) 3619 4344 w (to) 4190 4344 w 10 /LucidaSans-Italic f (embed) 4326 4344 w 10 /LucidaSansUnicode00 f (its) 4685 4344 w (own) 4840 4344 w (data) 720 4464 w (within) 972 4464 w (another) 1310 4464 w 10 /LucidaSansUnicode20 f (\031) 1684 4464 w 10 /LucidaSansUnicode00 f (s,) 1716 4464 w (for) 1841 4464 w (example) 2022 4464 w (to) 2477 4464 w (place) 2617 4464 w (an) 2913 4464 w (Excel) 3072 4464 w (spreadsheet) 3365 4464 w (within) 3997 4464 w (a) 4334 4464 w (Frame) 4430 4464 w (docu\255) 4770 4464 w (ment;) 720 4584 w (when) 1035 4584 w (Frame) 1327 4584 w (needs) 1661 4584 w (to) 1984 4584 w (format) 2117 4584 w (the) 2476 4584 w (page,) 2666 4584 w (it) 2969 4584 w (will) 3070 4584 w (start) 3269 4584 w (Excel) 3525 4584 w (itself,) 3811 4584 w (or) 4117 4584 w (at) 4254 4584 w (least) 4381 4584 w (some) 4645 4584 w (of) 4942 4584 w (its) 720 4704 w (DLLs,) 870 4704 w (to) 1167 4704 w (format) 1298 4704 w (the) 1655 4704 w (spreadsheet.) 1843 4704 w (OLE) 2531 4704 w (data) 2749 4704 w (can) 2992 4704 w (only) 3193 4704 w (be) 3430 4704 w (understood) 3582 4704 w (by the application) 4172 4704 w (that) 720 4824 w (created) 945 4824 w (it;) 1338 4824 w (plumbing) 1470 4824 w (messages,) 1967 4824 w (by) 2508 4824 w (contrast,) 2657 4824 w (contain) 3118 4824 w (arbitrary) 3509 4824 w (data) 3957 4824 w (with) 4201 4824 w (a) 4440 4824 w (rigidly) 4529 4824 w (for\255) 4868 4824 w (matted) 720 4944 w (header) 1097 4944 w (that) 1466 4944 w (will) 1693 4944 w (be) 1893 4944 w (interpreted) 2048 4944 w (by) 2625 4944 w (the) 2776 4944 w (pattern) 2967 4944 w (matcher) 3354 4944 w (and) 3785 4944 w (the) 4001 4944 w (destination) 4191 4944 w (appli\255) 4768 4944 w (cation.) 720 5064 w (The) 1133 5064 w (plumber) 1368 5064 w 10 /LucidaSansUnicode20 f (\031) 1775 5064 w 10 /LucidaSansUnicode00 f (s) 1807 5064 w (simplified) 1913 5064 w (message) 2447 5064 w (format) 2926 5064 w (may) 3305 5064 w (limit) 3560 5064 w (its) 3832 5064 w (flexibility) 4004 5064 w (but) 4510 5064 w (makes) 4727 5064 w (messages) 720 5184 w (easy) 1230 5184 w (and) 1479 5184 w (efficient) 1694 5184 w (to) 2123 5184 w (dispatch) 2256 5184 w (and) 2702 5184 w (to) 2916 5184 w (interpret.) 3048 5184 w (At) 3568 5184 w (least) 3708 5184 w (for) 3970 5184 w (the) 4143 5184 w (cut-and-paste) 4332 5184 w (style) 720 5304 w (of) 979 5304 w (exchange) 1112 5304 w (OLE) 1612 5304 w (encourages,) 1832 5304 w (plumbing) 2456 5304 w (gives) 2954 5304 w (up) 3239 5304 w (some) 3399 5304 w (power) 3695 5304 w (in) 4028 5304 w (return) 4154 5304 w (for) 4488 5304 w (simplic\255) 4662 5304 w (ity,) 720 5424 w (while) 912 5424 w (avoiding) 1207 5424 w (the) 1661 5424 w (need) 1857 5424 w (to) 2135 5424 w (invoke) 2274 5424 w (a) 2633 5424 w (vestigial) 2729 5424 w (program) 3170 5424 w (\(if) 3627 5424 w (Excel) 3767 5424 w (can) 4059 5424 w (be) 4268 5424 w (called) 4428 5424 w (a) 4752 5424 w (ves\255) 4848 5424 w (tige\)) 720 5544 w (every) 983 5544 w (time) 1286 5544 w (the) 1547 5544 w (pasted) 1748 5544 w (data) 2119 5544 w (is) 2375 5544 w (examined.) 2501 5544 w (Plumbing) 3086 5544 w (is) 3587 5544 w (also) 3713 5544 w (better) 3956 5544 w (suited) 4293 5544 w (to) 4638 5544 w (other) 4783 5544 w (styles of data exchange, such as connecting compiler errors to the text editor.) 720 5664 w (The) 720 5820 w (Hyperbole) 959 5820 w ([Wein]) 1512 5820 w (package) 1870 5820 w (for) 2329 5820 w (Emacs) 2527 5820 w (adds) 2890 5820 w (hypertext) 3181 5820 w (facilities) 3705 5820 w (to) 4167 5820 w (existing) 4324 5820 w (docu\255) 4770 5820 w (ments.) 720 5940 w (It) 1126 5940 w (includes) 1234 5940 w (explicit) 1679 5940 w (links) 2076 5940 w (and,) 2347 5940 w (like) 2601 5940 w (plumbing,) 2815 5940 w (a) 3352 5940 w (rule-driven) 3449 5940 w (way) 4040 5940 w (to) 4266 5940 w (form) 4406 5940 w (implicit) 4680 5940 w (links.) 720 6060 w (Since) 1063 6060 w (Emacs) 1365 6060 w (is) 1719 6060 w (purely) 1849 6060 w (textual,) 2202 6060 w (like) 2621 6060 w (Acme,) 2843 6060 w (Hyperbole) 3194 6060 w (does) 3740 6060 w (not) 4022 6060 w (easily) 4233 6060 w (extend) 4556 6060 w (to) 4942 6060 w (driving) 720 6180 w (graphical) 1092 6180 w (applications,) 1572 6180 w (nor) 2222 6180 w (does) 2419 6180 w (it) 2683 6180 w (provide) 2782 6180 w (a) 3180 6180 w (general) 3268 6180 w (interprocess) 3662 6180 w (communication) 4294 6180 w (method.) 720 6300 w (For) 1199 6300 w (instance,) 1398 6300 w (although) 1876 6300 w (Hyperbole) 2350 6300 w (provides) 2889 6300 w (some) 3349 6300 w (integration) 3654 6300 w (for) 4229 6300 w (mail) 4412 6300 w (applica\255) 4662 6300 w (tions,) 720 6420 w (it) 1025 6420 w (cannot) 1124 6420 w (provide) 1485 6420 w (the) 1883 6420 w (glue) 2071 6420 w (that) 2313 6420 w (allows) 2537 6420 w (a) 2872 6420 w (click) 2960 6420 w (on) 3211 6420 w (a) 3367 6420 w (face) 3455 6420 w (icon) 3687 6420 w (in an external program) 3923 6420 w (to) 720 6540 w (open) 860 6540 w (a) 1144 6540 w (mail) 1241 6540 w (message) 1489 6540 w (within) 1955 6540 w (the) 2293 6540 w (viewer.) 2490 6540 w (Moreover,) 2907 6540 w (since) 3435 6540 w (it) 3726 6540 w (is) 3834 6540 w (not) 3956 6540 w (implemented) 4158 6540 w (as) 4837 6540 w (a) 4985 6540 w (file server, Hyperbole does not share the advantages of that architecture.) 720 6660 w (Henry) 720 6816 w 10 /LucidaSansUnicode20 f (\031) 1005 6816 w 10 /LucidaSansUnicode00 f (s) 1037 6816 w 10 /LucidaTypewriter f (error) 1122 6816 w 10 /LucidaSansUnicode00 f (program) 1516 6816 w (in) 1966 6816 w (4BSD) 2091 6816 w (echoes) 2376 6816 w (a) 2748 6816 w (small) 2838 6816 w (but) 3130 6816 w (common) 3327 6816 w (use) 3783 6816 w (of) 3987 6816 w (plumbing.) 4120 6816 w (It) 4682 6816 w (takes) 4783 6816 w (the) 720 6936 w (error) 908 6936 w (messages) 1181 6936 w (produced) 1689 6936 w (by) 2182 6936 w (a) 2330 6936 w (compiler) 2418 6936 w (and) 2874 6936 w (drives) 3087 6936 w (a) 3412 6936 w (text) 3500 6936 w (editor) 3724 6936 w (through) 4044 6936 w (the) 4464 6936 w (steps of) 4652 6936 w (looking) 720 7056 w (at) 1115 7056 w (each) 1240 7056 w (one) 1497 7056 w (in) 1709 7056 w (turn;) 1833 7056 w (the) 2100 7056 w (notion) 2288 7056 w (is) 2633 7056 w (to) 2746 7056 w (quicken) 2877 7056 w (the) 3292 7056 w (compile/edit/debug) 3481 7056 w (cycle.) 4494 7056 w (Sim\255) 4831 7056 w (ilar) 720 7176 w (results) 918 7176 w (are) 1289 7176 w (achieved) 1485 7176 w (in) 1953 7176 w (EMACS) 2088 7176 w (by) 2464 7176 w (writing) 2622 7176 w (special) 3002 7176 w (M-LISP) 3379 7176 w (macros) 3757 7176 w (to) 4152 7176 w (parse) 4293 7176 w (the) 4602 7176 w (error) 4800 7176 w (messages) 720 7296 w (from) 1247 7296 w (various) 1531 7296 w (compilers.) 1934 7296 w (Although) 2524 7296 w (for) 3020 7296 w (this) 3211 7296 w (particular) 3442 7296 w (purpose) 3958 7296 w (they) 4408 7296 w (may) 4668 7296 w (be) 4921 7296 w cleartomark showpage saveobj restore %%EndPage: 13 13 %%Page: 14 14 /saveobj save def mark 14 pagesetup 10 /LucidaSansUnicode00 f (\255 14 \255) 2752 480 w (more) 720 840 w (convenient) 1013 840 w (than) 1583 840 w (plumbing,) 1841 840 w (these) 2378 840 w (are) 2682 840 w (specific) 2876 840 w (solutions) 3285 840 w (to) 3770 840 w (a) 3909 840 w (specific) 4005 840 w (problem) 4413 840 w (and) 4860 840 w (lack plumbing) 720 960 w 10 /LucidaSansUnicode20 f (\031) 1408 960 w 10 /LucidaSansUnicode00 f (s generality.) 1440 960 w (Of) 720 1116 w (course,) 880 1116 w (the) 1279 1116 w (resource) 1479 1116 w (forks) 1943 1116 w (in) 2236 1116 w (MacOS) 2372 1116 w (and) 2741 1116 w (the) 2967 1116 w (association) 3168 1116 w (rules) 3756 1116 w (for) 4041 1116 w (file) 4226 1116 w (name) 4423 1116 w (exten\255) 4735 1116 w (sions) 720 1236 w (in) 1012 1236 w (Windows) 1141 1236 w (also) 1607 1236 w (provide) 1840 1236 w (some) 2242 1236 w (of) 2540 1236 w (the) 2675 1236 w (functionality) 2867 1236 w (of) 3507 1236 w (the) 3642 1236 w (plumber,) 3834 1236 w (although) 4310 1236 w (again) 4777 1236 w (without the generality or dynamic nature.) 720 1356 w (Closer) 720 1512 w (to) 1081 1512 w (home,) 1233 1512 w (Ousterhout) 1591 1512 w 10 /LucidaSansUnicode20 f (\031) 2138 1512 w 10 /LucidaSansUnicode00 f (s) 2170 1512 w (Tcl) 2275 1512 w (\(Tool) 2472 1512 w (Command) 2773 1512 w (Language\)) 3323 1512 w ([Oust90]) 3878 1512 w (was) 4353 1512 w (originally) 4591 1512 w (designed) 720 1632 w (to) 1201 1632 w (embed) 1338 1632 w (a) 1708 1632 w (little) 1802 1632 w (command) 2058 1632 w (interpreter) 2575 1632 w (in) 3133 1632 w (each) 3263 1632 w (application) 3526 1632 w (to) 4099 1632 w (control) 4236 1632 w (interpro\255) 4617 1632 w (cess) 720 1752 w (communication) 975 1752 w (and) 1767 1752 w (provide) 1993 1752 w (a) 2404 1752 w (level) 2505 1752 w (of) 2773 1752 w (integration.) 2917 1752 w (Plumbing,) 3558 1752 w (on) 4091 1752 w (the) 4260 1752 w (other) 4462 1752 w (hand,) 4766 1752 w (provides) 720 1872 w (minimal) 1181 1872 w (support) 1616 1872 w (within) 2039 1872 w (the) 2380 1872 w (application,) 2580 1872 w (offloading) 3191 1872 w (most) 3732 1872 w (of) 4019 1872 w (the) 4161 1872 w (message) 4360 1872 w (han\255) 4828 1872 w (dling and all the command execution to the central plumber.) 720 1992 w (The) 720 2148 w (most) 937 2148 w (obvious) 1215 2148 w (relative) 1630 2148 w (to) 2021 2148 w (plumbing) 2155 2148 w (is) 2654 2148 w (perhaps) 2770 2148 w (the) 3198 2148 w (hypertext) 3390 2148 w (links) 3892 2148 w (of) 4158 2148 w (a) 4293 2148 w (web) 4385 2148 w (browser.) 4618 2148 w (Plumbing) 720 2268 w (differs) 1221 2268 w (by) 1581 2268 w (synthesizing) 1742 2268 w (the) 2397 2268 w (links) 2597 2268 w (on) 2871 2268 w (demand.) 3039 2268 w (Rather) 3540 2268 w (than) 3899 2268 w (constructing) 4160 2268 w (links) 4811 2268 w (within) 720 2388 w (a) 1061 2388 w (document) 1161 2388 w (as) 1692 2388 w (in) 1844 2388 w (HTML,) 1981 2388 w (plumbing) 2335 2388 w (uses) 2844 2388 w (the) 3110 2388 w (context) 3311 2388 w (of) 3722 2388 w (a) 3866 2388 w (button) 3967 2388 w (click) 4335 2388 w (to) 4599 2388 w (derive) 4743 2388 w (what) 720 2508 w (it) 984 2508 w (should) 1083 2508 w (link) 1444 2508 w (to.) 1655 2508 w (That) 1850 2508 w (the rules for this decision can be modified dynamically gives) 2100 2508 w (it) 720 2628 w (a) 820 2628 w (more) 909 2628 w (fluid) 1194 2628 w (feel) 1448 2628 w (than) 1660 2628 w (a) 1910 2628 w (standard) 1999 2628 w (web) 2460 2628 w (browsing) 2690 2628 w (world.) 3170 2628 w (One) 3539 2628 w (possibility) 3770 2628 w (for) 4299 2628 w (future) 4473 2628 w (work) 4803 2628 w (is) 720 2748 w (to) 840 2748 w (adapt) 978 2748 w (a) 1291 2748 w (web) 1386 2748 w (browser) 1622 2748 w (to) 2051 2748 w (use) 2188 2748 w (plumbing) 2396 2748 w (as) 2898 2748 w (its) 3043 2748 w (link-following) 3199 2748 w (engine,) 3921 2748 w (much) 4319 2748 w (as) 4626 2748 w (Acme) 4771 2748 w (used) 720 2868 w (plumbing) 991 2868 w (to) 1494 2868 w (offload) 1632 2868 w (its) 2015 2868 w (acquisition) 2172 2868 w (rules.) 2741 2868 w (This) 3084 2868 w (would) 3329 2868 w (connect) 3661 2868 w (the) 4081 2868 w (web) 4276 2868 w (browser) 4512 2868 w (to) 4942 2868 w (the) 720 2988 w (existing) 916 2988 w (tools,) 1344 2988 w (rather) 1656 2988 w (than) 1989 2988 w (the) 2246 2988 w (current) 2442 2988 w (trend) 2833 2988 w (in) 3133 2988 w (most) 3265 2988 w (systems) 3548 2988 w (of) 3980 2988 w (replacing) 4118 2988 w (the) 4606 2988 w (tools) 4801 2988 w (by a browser.) 720 3108 w (Each) 720 3264 w (of) 986 3264 w (these) 1128 3264 w (prior) 1434 3264 w (systems) 1713 3264 w 10 /LucidaSansUnicode20 f (\024) 2104 3264 w 10 /LucidaSansUnicode00 f (and) 2204 3264 w (there) 2429 3264 w (are) 2726 3264 w (others,) 2923 3264 w (e.g.) 3308 3264 w ([Pasa93,) 3535 3264 w (Free93]) 3987 3264 w 10 /LucidaSansUnicode20 f (\024) 4353 3264 w 10 /LucidaSansUnicode00 f (addresses) 4453 3264 w (a) 4985 3264 w (particular) 720 3384 w (need) 1221 3384 w (or) 1496 3384 w (subset) 1636 3384 w (of) 1994 3384 w (the) 2130 3384 w (issues) 2322 3384 w (of) 2659 3384 w (system) 2794 3384 w (integration.) 3171 3384 w (Plumbing) 3803 3384 w (differs) 4295 3384 w (because) 4646 3384 w (its) 720 3504 w (particular) 894 3504 w (choices) 1414 3504 w (were) 1832 3504 w (different.) 2119 3504 w (It) 2658 3504 w (focuses) 2781 3504 w (on) 3207 3504 w (two) 3387 3504 w (key) 3619 3504 w (issues:) 3842 3504 w (centralizing) 4232 3504 w (and) 4860 3504 w (automating) 720 3624 w (the) 1324 3624 w (handling) 1530 3624 w (of) 2005 3624 w (interprocess) 2154 3624 w (communication) 2804 3624 w (among) 3601 3624 w (interactive) 3985 3624 w (programs,) 4541 3624 w (and) 720 3744 w (maximizing) 942 3744 w (the) 1554 3744 w (convenience) 1751 3744 w (\(or) 2391 3744 w (minimizing) 2568 3744 w (the) 3155 3744 w (trouble\)) 3352 3744 w (for) 3776 3744 w (the) 3957 3744 w (human) 4154 3744 w (user) 4530 3744 w (of) 4782 3744 w (its) 4923 3744 w (services.) 720 3864 w (Moreover,) 1237 3864 w (the) 1789 3864 w (plumber) 2010 3864 w 10 /LucidaSansUnicode20 f (\031) 2417 3864 w 10 /LucidaSansUnicode00 f (s) 2449 3864 w (implementation) 2566 3864 w (as) 3394 3864 w (a) 3565 3864 w (file) 3685 3864 w (server,) 3901 3864 w (with) 4295 3864 w (messages) 4565 3864 w (passed) 720 3984 w (over) 1093 3984 w (files) 1337 3984 w (it) 1573 3984 w (controls,) 1673 3984 w (permits) 2132 3984 w (the) 2536 3984 w (architecture) 2725 3984 w (to) 3337 3984 w (work) 3469 3984 w (transparently) 3741 3984 w (across) 4417 3984 w (a) 4762 3984 w (net\255) 4852 3984 w (work.) 720 4104 w (None) 1081 4104 w (of) 1394 4104 w (the) 1552 4104 w (other) 1767 4104 w (systems) 2084 4104 w (discussed) 2535 4104 w (here) 3072 4104 w (integrates) 3347 4104 w (distributed) 3893 4104 w (systems) 4484 4104 w (as) 4934 4104 w (smoothly as local ones without the addition of significant extra technology.) 720 4224 w 10 /LucidaSans-Demi f (Discussion) 720 4464 w 10 /LucidaSansUnicode00 f (There) 720 4620 w (were) 1043 4620 w (a) 1318 4620 w (few) 1418 4620 w (surprises) 1633 4620 w (during) 2123 4620 w (the) 2487 4620 w (development) 2687 4620 w (of) 3360 4620 w (plumbing.) 3503 4620 w (The) 4076 4620 w (first) 4303 4620 w (version) 4544 4620 w (of) 4942 4620 w (plumbing) 720 4740 w (was) 1253 4740 w (done) 1506 4740 w (for) 1818 4740 w (the) 2027 4740 w (Inferno) 2251 4740 w (system) 2668 4740 w ([Dorw97a,Dorw97b],) 3077 4740 w (using) 4154 4740 w (its) 4489 4740 w (file-to-) 4675 4740 w (channel) 720 4860 w (mechanism) 1131 4860 w (to) 1717 4860 w (mediate) 1850 4860 w (the) 2274 4860 w (IPC.) 2464 4860 w (Although) 2716 4860 w (it) 3195 4860 w (was) 3296 4860 w (very) 3514 4860 w (simple) 3750 4860 w (to) 4106 4860 w (build,) 4239 4860 w (it) 4552 4860 w (encoun\255) 4653 4860 w (tered) 720 4980 w (difficulties) 1012 4980 w (because) 1561 4980 w (the) 1994 4980 w (plumber) 2187 4980 w (was) 2632 4980 w (too) 2853 4980 w (disconnected) 3050 4980 w (from) 3730 4980 w (its) 4000 4980 w (clients;) 4155 4980 w (in) 4540 4980 w (particu\255) 4669 4980 w (lar,) 720 5100 w (there) 911 5100 w (was) 1197 5100 w (no) 1414 5100 w (way) 1571 5100 w (to) 1789 5100 w (discover) 1921 5100 w (whether) 2359 5100 w (a) 2784 5100 w (port) 2873 5100 w (was) 3109 5100 w (in) 3326 5100 w (use.) 3452 5100 w (When) 3720 5100 w (plumbing) 4021 5100 w (was) 4519 5100 w (imple\255) 4737 5100 w (mented) 720 5220 w (afresh) 1126 5220 w (for) 1467 5220 w (Plan) 1645 5220 w (9,) 1885 5220 w (it) 2019 5220 w (was) 2124 5220 w (provided) 2346 5220 w (through) 2813 5220 w (a) 3239 5220 w (true) 3333 5220 w (file) 3568 5220 w (server.) 3758 5220 w (Although) 4158 5220 w (this) 4640 5220 w (was) 4857 5220 w (much) 720 5340 w (more) 1034 5340 w (work,) 1331 5340 w (it) 1646 5340 w (paid) 1758 5340 w (off) 2014 5340 w (handsomely.) 2195 5340 w (The) 2889 5340 w (plumber) 3116 5340 w (now) 3569 5340 w (knows) 3815 5340 w (whether) 4171 5340 w (a) 4609 5340 w (port) 4711 5340 w (is) 4960 5340 w (open,) 720 5460 w (which) 1027 5460 w (makes) 1341 5460 w (it) 1687 5460 w (easy) 1786 5460 w (to decide whether a new program must be started to handle a) 2033 5460 w (message,) 720 5580 w (and) 1217 5580 w (the) 1439 5580 w (ability) 1636 5580 w (to) 1972 5580 w (edit) 2112 5580 w (the) 2339 5580 w (rules) 2536 5580 w (file) 2817 5580 w (dynamically) 3010 5580 w (is) 3622 5580 w (a) 3744 5580 w (major) 3841 5580 w (advantage.) 4163 5580 w (Other) 4766 5580 w (advantages) 720 5700 w (arise) 1315 5700 w (from) 1594 5700 w (the) 1872 5700 w (file-server) 2073 5700 w (design,) 2625 5700 w (such) 3026 5700 w (as) 3298 5700 w (the) 3450 5700 w (ease) 3651 5700 w (of) 3915 5700 w (exporting) 4059 5700 w (plumbing) 4577 5700 w (ports) 720 5820 w (across) 1024 5820 w (the) 1385 5820 w (network) 1591 5820 w (to) 2034 5820 w (remote) 2183 5820 w (machines) 2578 5820 w (and) 3088 5820 w (the) 3320 5820 w (implicit) 3527 5820 w (security) 3939 5820 w (model) 4370 5820 w (a) 4724 5820 w (file-) 4831 5820 w (based interface provides: no one has permission to open my private plumbing files.) 720 5940 w (On) 720 6096 w (the) 918 6096 w (other) 1131 6096 w (hand,) 1446 6096 w (Inferno) 1778 6096 w (was) 2184 6096 w (an) 2425 6096 w (all-new) 2601 6096 w (environment) 3026 6096 w (and) 3696 6096 w (the) 3935 6096 w (user) 4149 6096 w (interface) 4418 6096 w (for) 4901 6096 w (plumbing) 720 6216 w (was) 1233 6216 w (able) 1466 6216 w (to) 1719 6216 w (be) 1867 6216 w (made) 2035 6216 w (uniform) 2351 6216 w (for) 2785 6216 w (all) 2973 6216 w (applications.) 3135 6216 w (This) 3833 6216 w (was) 4087 6216 w (impractical) 4319 6216 w (for) 4901 6216 w (Plan) 720 6336 w (9,) 958 6336 w (so) 1090 6336 w (more) 1239 6336 w 10 /LucidaSans-Italic f (ad) 1527 6336 w (hoc) 1686 6336 w 10 /LucidaSansUnicode00 f (interfaces) 1892 6336 w (had) 2404 6336 w (to) 2621 6336 w (be) 2756 6336 w (provided) 2912 6336 w (for) 3377 6336 w (that) 3553 6336 w (environment.) 3781 6336 w (Yet) 4493 6336 w (even) 4685 6336 w (in) 4949 6336 w (Plan) 720 6456 w (9) 954 6456 w (the) 1050 6456 w (advantages) 1238 6456 w (of) 1819 6456 w (efficient,) 1950 6456 w (convenient, dynamic interprocess communication out\255) 2409 6456 w (weigh) 720 6576 w (the) 1047 6576 w (variability) 1243 6576 w (of) 1755 6576 w (the) 1894 6576 w (user) 2090 6576 w (interface.) 2341 6576 w (In) 2870 6576 w (fact,) 3002 6576 w (it) 3255 6576 w (is) 3362 6576 w (perhaps) 3483 6576 w (a) 3915 6576 w (telling) 4012 6576 w (point) 4358 6576 w (that) 4652 6576 w (the) 4885 6576 w (system) 720 6696 w (works) 1117 6696 w (well) 1462 6696 w (for) 1710 6696 w (a) 1906 6696 w (variety) 2017 6696 w (of) 2395 6696 w (interfaces;) 2549 6696 w (the) 3112 6696 w (provision) 3323 6696 w (of) 3828 6696 w (a) 3982 6696 w (central,) 4093 6696 w (convenient) 4512 6696 w (message-passing service is a good idea regardless of how the programs use it.) 720 6816 w (Plumbing) 720 6972 w 10 /LucidaSansUnicode20 f (\031) 1175 6972 w 10 /LucidaSansUnicode00 f (s) 1207 6972 w (rule) 1295 6972 w (language) 1520 6972 w (uses) 2000 6972 w (only) 2257 6972 w (regular) 2498 6972 w (expressions) 2882 6972 w (and) 3502 6972 w (a) 3720 6972 w (few) 3813 6972 w (special) 4021 6972 w (rules) 4393 6972 w (such) 4670 6972 w (as) 4934 6972 w 10 /LucidaTypewriter f (isfile) 720 7092 w 10 /LucidaSansUnicode00 f (for) 1195 7092 w (matching) 1377 7092 w (text.) 1871 7092 w (There) 2169 7092 w (is) 2489 7092 w (much) 2611 7092 w (more) 2921 7092 w (that) 3214 7092 w (could) 3447 7092 w (be) 3755 7092 w (done.) 3916 7092 w (For) 4264 7092 w (example,) 4462 7092 w (in) 4949 7092 w (the) 720 7212 w (current) 933 7212 w (system) 1342 7212 w (a) 1741 7212 w (JPEG) 1855 7212 w (file) 2126 7212 w (can) 2336 7212 w (be) 2563 7212 w (recognized) 2741 7212 w (by) 3338 7212 w (a) 3512 7212 w 10 /LucidaTypewriter f (.jpg) 3626 7212 w 10 /LucidaSansUnicode00 f (suffix) 3973 7212 w (but) 4309 7212 w (not) 4530 7212 w (by) 4749 7212 w (its) 4923 7212 w cleartomark showpage saveobj restore %%EndPage: 14 14 %%Page: 15 15 /saveobj save def mark 15 pagesetup 10 /LucidaSansUnicode00 f (\255 15 \255) 2752 480 w (contents,) 720 840 w (since) 1203 840 w (the) 1486 840 w (plumbing) 1675 840 w (language) 2172 840 w (has) 2649 840 w (no) 2851 840 w (facility) 3008 840 w (for) 3361 840 w (examining) 3534 840 w (the) 4077 840 w 10 /LucidaSans-Italic f (contents) 4265 840 w 10 /LucidaSansUnicode00 f (of) 4707 840 w (files) 4838 840 w (named) 720 960 w (in) 1114 960 w (its) 1270 960 w (messages.) 1452 960 w (To) 2057 960 w (address) 2247 960 w (this) 2693 960 w (issue) 2938 960 w (without) 3253 960 w (adding) 3684 960 w (more) 4084 960 w (special) 4401 960 w (rules) 4801 960 w (requires) 720 1080 w (rethinking) 1156 1080 w (the) 1691 1080 w (language) 1883 1080 w (itself.) 2363 1080 w (Although) 2703 1080 w (the) 3184 1080 w (current) 3376 1080 w (system) 3763 1080 w (seems) 4140 1080 w (a) 4484 1080 w (good) 4576 1080 w (bal\255) 4860 1080 w (ance) 720 1200 w (of) 982 1200 w (complexity) 1118 1200 w (and) 1688 1200 w (functionality,) 1906 1200 w (perhaps) 2579 1200 w (a) 3008 1200 w (richer,) 3101 1200 w (more) 3452 1200 w (general-purpose) 3742 1200 w (language) 4597 1200 w (would permit more exotic applications of the plumbing model.) 720 1320 w (In conclusion,) 720 1476 w (plumbing) 1427 1476 w (adds) 1923 1476 w (an) 2188 1476 w (effective,) 2338 1476 w (easy-to-use) 2814 1476 w (inter-application) 3444 1476 w (communication) 4294 1476 w (mechanism) 720 1596 w (to) 1320 1596 w (the) 1466 1596 w (Plan) 1669 1596 w (9) 1917 1596 w (user) 2027 1596 w (interface.) 2284 1596 w (Its) 2819 1596 w (unusual) 2983 1596 w (design) 3413 1596 w (as) 3783 1596 w (a) 3936 1596 w (language-driven) 4038 1596 w (file) 4889 1596 w (server) 720 1716 w (makes) 1085 1716 w (it) 1466 1716 w (easy) 1600 1716 w (to) 1882 1716 w (add) 2048 1716 w (context-dependent,) 2298 1716 w (dynamically) 3340 1716 w (interpreted,) 3979 1716 w (general-) 4621 1716 w (purpose hyperlinks to the desktop, for both existing tools and new ones.) 720 1836 w 10 /LucidaSans-Demi f (Acknowledgements) 720 2076 w 10 /LucidaSansUnicode00 f (Dave) 720 2232 w (Presotto) 998 2232 w (wrote) 1437 2232 w (the) 1749 2232 w (mail) 1944 2232 w (file) 2190 2232 w (system) 2381 2232 w (and) 2762 2232 w 10 /LucidaTypewriter f (edmail) 2983 2232 w 10 /LucidaSansUnicode00 f (.) 3415 2232 w (He,) 3520 2232 w (Russ) 3723 2232 w (Cox,) 3991 2232 w (Sape) 4255 2232 w (Mullender,) 4524 2232 w (and) 720 2352 w (Cliff) 949 2352 w (Young) 1199 2352 w (influenced) 1557 2352 w (the) 2113 2352 w (design,) 2317 2352 w (offered) 2720 2352 w (useful) 3119 2352 w (suggestions,) 3464 2352 w (and) 4128 2352 w (suffered) 4356 2352 w (early) 4807 2352 w (versions) 720 2472 w (of) 1162 2472 w (the) 1299 2472 w (software.) 1493 2472 w (They) 2011 2472 w (also) 2283 2472 w (made) 2518 2472 w (helpful) 2824 2472 w (comments) 3201 2472 w (on) 3744 2472 w (this) 3906 2472 w (paper,) 4124 2472 w (as) 4473 2472 w (did) 4619 2472 w (Den\255) 4814 2472 w (nis Ritchie and Brian Kernighan.) 720 2592 w 10 /LucidaSans-Demi f (References) 720 2832 w 10 /LucidaSansUnicode00 f ([Dorw97a]) 720 2988 w (Sean) 1267 2988 w (Dorward,) 1540 2988 w (Rob) 2031 2988 w (Pike,) 2264 2988 w (David) 2540 2988 w (Leo) 2860 2988 w (Presotto,) 3076 2988 w (Dennis) 3553 2988 w (M.) 3934 2988 w (Ritchie,) 4098 2988 w (Howard) 4504 2988 w (W.) 4922 2988 w (Trickey,) 720 3108 w (and) 1172 3108 w (Philip) 1421 3108 w (Winterbottom,) 1757 3108 w 10 /LucidaSansUnicode20 f (\030\030) 2521 3108 w 10 /LucidaSansUnicode00 f (Inferno) 2585 3108 w 10 /LucidaSansUnicode20 f (\031\031) 2933 3108 w 10 /LucidaSansUnicode00 f (,) 2997 3108 w 10 /LucidaSans-Italic f (Proceedings) 3098 3108 w (of) 3748 3108 w (the) 3912 3108 w (IEEE) 4134 3108 w (Compcon) 4397 3108 w (97) 4914 3108 w (Conference) 720 3228 w 10 /LucidaSansUnicode00 f (, San Jose, 1997, pp. 241-244.) 1264 3228 w ([Dorw97b]) 720 3384 w (Sean) 1274 3384 w (Dorward,) 1546 3384 w (Rob) 2036 3384 w (Pike,) 2268 3384 w (David) 2543 3384 w (Leo) 2862 3384 w (Presotto,) 3078 3384 w (Dennis) 3555 3384 w (M.) 3936 3384 w (Ritchie,) 4100 3384 w (Howard) 4505 3384 w (W.) 4922 3384 w (Trickey,) 720 3504 w (and) 1145 3504 w (Philip) 1368 3504 w (Winterbottom,) 1678 3504 w 10 /LucidaSansUnicode20 f (\030\030) 2416 3504 w 10 /LucidaSansUnicode00 f (The) 2480 3504 w (Inferno) 2704 3504 w (Operating) 3095 3504 w (System) 3621 3504 w 10 /LucidaSansUnicode20 f (\031\031) 3964 3504 w 10 /LucidaSansUnicode00 f (,) 4028 3504 w 10 /LucidaSans-Italic f (Bell) 4102 3504 w (Labs) 4314 3504 w (Technical) 4582 3504 w (Journal) 720 3624 w 10 /LucidaSansUnicode00 f (,) 1080 3624 w 10 /LucidaSans-Demi f (2) 1144 3624 w 10 /LucidaSansUnicode00 f (, 1, Winter, 1997.) 1208 3624 w ([Free93] FreeBSD, Syslog configuration file manual) 720 3780 w 10 /LucidaSans-Italic f (syslog.conf) 3202 3780 w 10 /LucidaSansUnicode00 f (\(0\).) 3741 3780 w ([Kill84]) 720 3936 w (T.) 1122 3936 w (J.) 1275 3936 w (Killian,) 1396 3936 w 10 /LucidaSansUnicode20 f (\030\030) 1784 3936 w 10 /LucidaSansUnicode00 f (Processes) 1848 3936 w (as) 2379 3936 w (Files) 2543 3936 w 10 /LucidaSansUnicode20 f (\031\031) 2762 3936 w 10 /LucidaSansUnicode00 f (,) 2826 3936 w 10 /LucidaSans-Italic f (Proceedings) 2916 3936 w (of) 3556 3936 w (the) 3710 3936 w (Summer) 3922 3936 w (1984) 4385 3936 w (USENIX) 4696 3936 w (Conference) 720 4056 w 10 /LucidaSansUnicode00 f (, Salt Lake City, 1984, pp. 203-207.) 1264 4056 w ([Oust90]) 720 4212 w (John) 1179 4212 w (K.) 1434 4212 w (Ousterhout,) 1570 4212 w 10 /LucidaSansUnicode20 f (\030\030) 2188 4212 w 10 /LucidaSansUnicode00 f (Tcl:) 2252 4212 w (An) 2466 4212 w (Embeddable) 2636 4212 w (Command) 3270 4212 w (Languages) 3805 4212 w 10 /LucidaSansUnicode20 f (\031\031) 4323 4212 w 10 /LucidaSansUnicode00 f (,) 4387 4212 w 10 /LucidaSans-Italic f (Proceedings) 4459 4212 w (of the Winter 1990 USENIX Conference) 720 4332 w 10 /LucidaSansUnicode00 f (, Washington, 1990, pp. 133-146.) 2587 4332 w ([Pasa93]) 720 4488 w (Vern) 1198 4488 w (Paxson) 1492 4488 w (and) 1907 4488 w (Chris) 2157 4488 w (Saltmarsh,) 2479 4488 w ("Glish:) 3058 4488 w (A) 3440 4488 w (User-Level) 3579 4488 w (Software) 4170 4488 w (Bus) 4659 4488 w (for) 4901 4488 w (Loosely-Coupled) 720 4608 w (Distributed) 1627 4608 w (Systems") 2253 4608 w (,) 2767 4608 w 10 /LucidaSans-Italic f (Proceedings) 2882 4608 w (of) 3546 4608 w (the) 3724 4608 w (Winter) 3960 4608 w (1993) 4362 4608 w (USENIX) 4696 4608 w (Conference) 720 4728 w 10 /LucidaSansUnicode00 f (, San Diego, 1993, pp. 141-155.) 1264 4728 w ([Pike87a]) 720 4884 w (Rob) 1221 4884 w (Pike,) 1464 4884 w 10 /LucidaSansUnicode20 f (\030\030) 1750 4884 w 10 /LucidaSansUnicode00 f (Structural) 1814 4884 w (Regular) 2339 4884 w (Expressions) 2763 4884 w 10 /LucidaSansUnicode20 f (\031\031) 3343 4884 w 10 /LucidaSansUnicode00 f (,) 3407 4884 w 10 /LucidaSans-Italic f (EUUG) 3495 4884 w (Spring) 3814 4884 w (1987) 4187 4884 w (Conference) 4496 4884 w (Proceedings) 720 5004 w 10 /LucidaSansUnicode00 f (, Helsinki, May 1987, pp. 21-28.) 1301 5004 w ([Pike87b]) 720 5160 w (Rob) 1214 5160 w (Pike,) 1442 5160 w 10 /LucidaSansUnicode20 f (\030\030) 1713 5160 w 10 /LucidaSansUnicode00 f (The) 1777 5160 w (Text) 1999 5160 w (Editor) 2257 5160 w (sam) 2584 5160 w 10 /LucidaSansUnicode20 f (\031\031) 2783 5160 w 10 /LucidaSansUnicode00 f (,) 2847 5160 w 10 /LucidaSans-Italic f (Software) 2921 5160 w (-) 3391 5160 w (Practice) 3496 5160 w (and) 3925 5160 w (Experience) 4151 5160 w 10 /LucidaSansUnicode00 f (,) 4669 5160 w 10 /LucidaSans-Demi f (17) 4743 5160 w 10 /LucidaSansUnicode00 f (,) 4871 5160 w (5,) 4945 5160 w (Nov. 1987, pp. 813-845.) 720 5280 w ([Pike91]) 720 5436 w (Rob) 1152 5436 w (Pike,) 1381 5436 w 10 /LucidaSansUnicode20 f (\030\030) 1653 5436 w 10 /LucidaSansUnicode00 f (8\275,) 1717 5436 w (the) 1934 5436 w (Plan) 2131 5436 w (9) 2374 5436 w (Window) 2480 5436 w (System) 2901 5436 w 10 /LucidaSansUnicode20 f (\031\031) 3244 5436 w 10 /LucidaSansUnicode00 f (,) 3308 5436 w 10 /LucidaSans-Italic f (Proceedings) 3383 5436 w (of) 4007 5436 w (the) 4145 5436 w (Summer) 4341 5436 w (1991) 4788 5436 w (USENIX Conference) 720 5556 w 10 /LucidaSansUnicode00 f (, Nashville, 1991, pp. 257-265.) 1640 5556 w ([Pike93]) 720 5712 w (Rob) 1155 5712 w (Pike,) 1387 5712 w (Dave) 1662 5712 w (Presotto,) 1945 5712 w (Ken) 2421 5712 w (Thompson,) 2649 5712 w (Howard) 3243 5712 w (Trickey,) 3660 5712 w (and) 4088 5712 w (Phil) 4314 5712 w (Winterbot\255) 4535 5712 w (tom,) 720 5832 w 10 /LucidaSansUnicode20 f (\030\030) 977 5832 w 10 /LucidaSansUnicode00 f (The) 1041 5832 w (Use) 1256 5832 w (of) 1466 5832 w (Name) 1598 5832 w (Spaces) 1910 5832 w (in) 2274 5832 w (Plan) 2399 5832 w (9) 2634 5832 w 10 /LucidaSansUnicode20 f (\031\031) 2697 5832 w 10 /LucidaSansUnicode00 f (,) 2761 5832 w 10 /LucidaSans-Italic f (Operating) 2827 5832 w (Systems) 3351 5832 w (Review) 3776 5832 w 10 /LucidaSansUnicode00 f (,) 4106 5832 w 10 /LucidaSans-Demi f (27) 4171 5832 w 10 /LucidaSansUnicode00 f (,) 4299 5832 w (2,) 4364 5832 w (April) 4492 5832 w (1993,) 4756 5832 w (pp. 72-76.) 720 5952 w ([Pike94]) 720 6108 w (Rob) 1143 6108 w (Pike,) 1363 6108 w 10 /LucidaSansUnicode20 f (\030\030) 1627 6108 w 10 /LucidaSansUnicode00 f (Acme:) 1691 6108 w (A) 2026 6108 w (User) 2129 6108 w (Interface) 2380 6108 w (for) 2838 6108 w (Programmers) 3011 6108 w 10 /LucidaSansUnicode20 f (\031\031) 3660 6108 w 10 /LucidaSansUnicode00 f (,) 3724 6108 w 10 /LucidaSans-Italic f (Proceedings) 3790 6108 w (of) 4405 6108 w (the) 4534 6108 w (Winter) 4721 6108 w (1994 USENIX Conference) 720 6228 w 10 /LucidaSansUnicode00 f (, San Francisco, 1994, pp. 223-234.) 1924 6228 w ([PiPr85]) 720 6384 w (Rob) 1149 6384 w (Pike) 1393 6384 w (and) 1648 6384 w (Dave) 1885 6384 w (Presotto,) 2181 6384 w 10 /LucidaSansUnicode20 f (\030\030) 2670 6384 w 10 /LucidaSansUnicode00 f (Face) 2734 6384 w (the) 3008 6384 w (Nation) 3221 6384 w 10 /LucidaSansUnicode20 f (\031\031) 3539 6384 w 10 /LucidaSansUnicode00 f (,) 3603 6384 w 10 /LucidaSans-Italic f (Proceedings) 3693 6384 w (of) 4332 6384 w (the) 4485 6384 w (USENIX) 4696 6384 w (Summer 1985 Conference) 720 6504 w 10 /LucidaSansUnicode00 f (, Portland, 1985, pg. 81.) 1984 6504 w ([Reis95]) 720 6660 w (Steven) 1162 6660 w (P.) 1531 6660 w (Reiss,) 1670 6660 w 10 /LucidaSans-Italic f (The) 2004 6660 w (FIELD) 2233 6660 w (Programming) 2552 6660 w (Environment:) 3275 6660 w (A) 3972 6660 w (Friendly) 4093 6660 w (Integrated) 4536 6660 w (Environment for Learning and Development) 720 6780 w 10 /LucidaSansUnicode00 f (, Kluwer, Boston, 1995.) 2846 6780 w ([Wein]) 720 6936 w (Bob) 1494 6936 w (Weiner,) 2151 6936 w 10 /LucidaSans-Italic f (Hyperbole) 2988 6936 w (User) 3955 6936 w (Manual) 4650 6936 w 10 /LucidaSansUnicode00 f (,) 5008 6936 w 10 /LucidaTypewriter f (http://www.cs.indiana.edu/elisp/hyperbole/hyperbole_1.html) 720 7056 w 10 /LucidaSansUnicode00 f ([Wint94]) 720 7212 w (Philip) 1159 7212 w (Winterbottom,) 1459 7212 w 10 /LucidaSansUnicode20 f (\030\030) 2187 7212 w 10 /LucidaSansUnicode00 f (ACID:) 2251 7212 w (A) 2558 7212 w (Debugger) 2660 7212 w (based) 3170 7212 w (on) 3491 7212 w (a) 3647 7212 w (Language) 3735 7212 w 10 /LucidaSansUnicode20 f (\031\031) 4202 7212 w 10 /LucidaSansUnicode00 f (,) 4266 7212 w 10 /LucidaSans-Italic f (Proceedings) 4331 7212 w (of) 4945 7212 w cleartomark showpage saveobj restore %%EndPage: 15 15 %%Page: 16 16 /saveobj save def mark 16 pagesetup 10 /LucidaSansUnicode00 f (\255 16 \255) 2752 480 w 10 /LucidaSans-Italic f (the USENIX Winter Conference) 720 840 w 10 /LucidaSansUnicode00 f (, San Francisco, CA, 1994.) 2176 840 w ([WiGu92]) 720 996 w (Niklaus) 1195 996 w (Wirth) 1588 996 w (and) 1878 996 w (Jurg) 2093 996 w (Gutknecht,) 2324 996 w 10 /LucidaSans-Italic f (Project) 2888 996 w (Oberon:) 3260 996 w (The) 3686 996 w (Design) 3898 996 w (of) 4261 996 w (an) 4391 996 w (Operating) 4549 996 w (System and Compilers) 720 1116 w 10 /LucidaSansUnicode00 f (, Addison-Wesley, Reading, 1992.) 1798 1116 w cleartomark showpage saveobj restore %%EndPage: 16 16 %%Trailer done %%Pages: 16