[[project @ 2005-06-23 06:20:44 by unknown_lamer] unknown_lamer**20050623062044 Added dsmith's documentation patch. I'll hack on more documentation soon, I promise :-) ] { hunk ./ChangeLog 1 +2005-06-23 Clinton Ebadi + + * bobot++.texinfo: Applied documentation patch from Dale P. Smith + hunk ./TODO 12 +* Register a lazy catch handler (in Interp::Startup) that prints more + debug info to the log (filename, line number, column number, + etc.). Check the mod_guile source for the lazy catch handler in it. hunk ./TODO 68 -* Make it possible to use Scheme functions in the Parser itself hunk ./TODO 73 + +Maybe: hunk ./TODO 77 +* Make it possible to use Scheme functions in the Parser itself binary ./bobot++.info oldhex *5468697320697320626f626f742b2b2e696e666f2c2070726f6475636564206279206d616b6569 *6e666f2076657273696f6e20342e372066726f6d0a626f626f742b2b2e746578696e666f2e0a0a *202020546869732066696c6520646f63756d656e747320426f626f742b2b20627920436c696e74 *6f6e20456261646920616e6420457469656e6e65204265726e6172640a286f726967696e616c20 *617574686f722c206e6f206c6f6e67657220776f726b73206f6e2070726f6772616d292e0a0a20 *2020436f7079726967687420323030322c323030342c3230303520436c696e746f6e2045626164 *690a0a2020205065726d697373696f6e206973206772616e74656420746f20636f70792c206469 *737472696275746520616e642f6f72206d6f64696679207468697320646f63756d656e740a756e *64657220746865207465726d73206f662074686520474e55204672656520446f63756d656e7461 *74696f6e204c6963656e73652c2056657273696f6e20312e31206f720a616e79206c6174657220 *76657273696f6e207075626c697368656420627920746865204672656520536f66747761726520 *466f756e646174696f6e3b2077697468206e6f0a496e76617269616e742053656374696f6e732c *2077697468206e6f2046726f6e742d436f7665722054657874732c20616e642077697468206e6f *204261636b2d436f7665720a54657874732e0a0a1f0a46696c653a20626f626f742b2b2e696e66 *6f2c20204e6f64653a20546f702c20204e6578743a20496e74726f64756374696f6e2c20205072 *65763a2028646972292c202055703a2028646972290a0a2020205468697320646f63756d656e74 *2064657363726962657320426f626f742b2b20627920436c696e746f6e20456261646920616e64 *20457469656e6e65204265726e6172640a286f726967696e616c20617574686f722c206e6f206c *6f6e67657220776f726b73206f6e2070726f6772616d292e0a0a2020205468697320646f63756d *656e74206170706c69657320746f2076657273696f6e20322e312e35206f66207468652070726f *6772616d206e616d656420426f626f742b2b0a0a202020436f7079726967687420323030322c32 *30303420436c696e746f6e2045626164690a0a2020205065726d697373696f6e20697320677261 *6e74656420746f20636f70792c206469737472696275746520616e642f6f72206d6f6469667920 *7468697320646f63756d656e740a756e64657220746865207465726d73206f662074686520474e *55204672656520446f63756d656e746174696f6e204c6963656e73652c2056657273696f6e2031 *2e31206f720a616e79206c617465722076657273696f6e207075626c6973686564206279207468 *65204672656520536f66747761726520466f756e646174696f6e3b2077697468206e6f0a496e76 *617269616e742053656374696f6e732c2077697468206e6f2046726f6e742d436f766572205465 *7874732c20616e642077697468206e6f204261636b2d436f7665720a54657874732e0a0a2a204d *656e753a0a0a2a20496e74726f64756374696f6e3a3a0a2a20436f6e66696775726174696f6e3a *3a0a2a205573696e672074686520426f743a3a0a2a20536372697074696e673a3a0a2a20436f6e *6365707420496e6465783a3a0a2a2046756e6374696f6e20496e6465783a3a0a2a205661726961 *626c6520496e6465783a3a0a0a202d2d2d205468652044657461696c6564204e6f6465204c6973 *74696e67202d2d2d0a0a436f6e66696775726174696f6e0a0a2a20436f6e66696775726174696f *6e2046696c65733a3a0a2a20436f6e66696775726174696f6e2046696c6520506c6163656d656e *743a3a0a0a436f6e66696775726174696f6e2046696c65730a0a2a20626f742e636f6e663a3a0a *2a20626f742e75736572733a3a0a0a626f742e636f6e660a0a2a207365727665722073796e7461 *783a3a0a2a206368616e6e656c2073796e7461783a3a0a0a5573696e6720426f626f742b2b0a0a *2a205374617274696e672074686520426f743a3a0a2a2055736572204c6576656c733a3a0a2a20 *50726f74656374696f6e3a3a0a2a204175746f6d61746963204f703a3a0a2a204275696c742d49 *6e20436f6d6d616e64733a3a0a0a536372697074696e670a0a2a20416464696e67204e65772043 *6f6d6d616e64733a3a0a2a20486f6f6b733a3a0a2a20536368656d652055736572204c6576656c *733a3a0a2a2053656e64696e67204d657373616765733a3a0a2a204d6973632053637269707469 *6e672053747566663a3a0a0a486f6f6b730a0a2a204372656174696e67206120486f6f6b3a3a0a *2a20486f6f6b2054797065733a3a0a0a53656e64696e67204d657373616765730a0a2a20486967 *68204c6576656c204d6573736167652046756e6374696f6e733a3a0a2a204c6f77204c6576656c *204d6573736167652046756e6374696f6e733a3a0a0a1f0a46696c653a20626f626f742b2b2e69 *6e666f2c20204e6f64653a20496e74726f64756374696f6e2c20204e6578743a20436f6e666967 *75726174696f6e2c2020507265763a20546f702c202055703a20546f700a0a3120496e74726f64 *756374696f6e0a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a54686973206d616e75616c206665656c *732061627573656420616e64206e65676c65637465642062656361757365206974206861732061 *6c6d6f7374206e6f20636f6e74656e742e0a0a1f0a46696c653a20626f626f742b2b2e696e666f *2c20204e6f64653a20436f6e66696775726174696f6e2c20204e6578743a205573696e67207468 *6520426f742c2020507265763a20496e74726f64756374696f6e2c202055703a20546f700a0a32 *20436f6e66696775726174696f6e0a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a426f626f742b2b *206973206561737920746f20636f6e6669677572652e205365652074686520606578616d706c65 *7327206469726563746f727920666f7220616e0a6578616d706c6520636f6e6669677572617469 *6f6e2e0a0a2a204d656e753a0a0a2a20436f6e66696775726174696f6e2046696c65733a3a0a2a *20436f6e66696775726174696f6e2046696c6520506c6163656d656e743a3a0a0a1f0a46696c65 *3a20626f626f742b2b2e696e666f2c20204e6f64653a20436f6e66696775726174696f6e204669 *6c65732c20204e6578743a20436f6e66696775726174696f6e2046696c6520506c6163656d656e *742c2020507265763a20436f6e66696775726174696f6e2c202055703a20436f6e666967757261 *74696f6e0a0a322e3120436f6e66696775726174696f6e2046696c65730a3d3d3d3d3d3d3d3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a2a204d656e753a0a0a2a20626f742e636f6e663a3a0a2a *20626f742e75736572733a3a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f *64653a20626f742e636f6e662c20204e6578743a20626f742e75736572732c2020507265763a20 *436f6e66696775726174696f6e2046696c65732c202055703a20436f6e66696775726174696f6e *2046696c65730a0a322e312e3120626f742e636f6e660a2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a *2a204d656e753a0a0a2a207365727665722073796e7461783a3a0a2a206368616e6e656c207379 *6e7461783a3a0a0a20202060626f742e636f6e662720636f6e7461696e73206b65792076616c75 *652070616972732073657061726174656420627920603d272e0a0a202020603c6b65793e203d20 *3c76616c75653e270a0a202020436f6d6d656e7473206172652073746172746564207769746820 *612060232720616e642063617573652074686520656e74697265206c696e6520746f2062650a69 *676e6f7265642e205f4e6f746520746861742074686973206f6e6c7920776f726b73207768656e *207468652060232720697320746865206669727374206368617261637465720a6f662074686520 *6c696e655f2e0a0a202020626f742e636f6e6620697320746865206d61696e20636f6e66696775 *726174696f6e2066696c6520666f72206120426f626f742b2b2e2054686520617661696c61626c *650a636f6e66696775726174696f6e207661726961626c657320617265206c6973746564206265 *6c6f7720696e2074686520666f726d617420225641524941424c450a3c64656661756c742d7661 *6c75653e3a206465736372697074696f6e220a0a2020202a204e49434b4e414d45203c426f626f *743e3a20546865206e69636b6e616d65206f662074686520626f7420284e49434b20697320616e *20616c69617320666f720a20202020204e49434b4e414d45290a0a2020202a20555345524e414d *45203c626f626f743e3a205468652049524320757365726e616d65206f662074686520626f740a *0a2020202a20434d4443484152203c213e3a205468652063686172616374657220746861742070 *7265666978657320636f6d6d616e647320676976656e20746f2074686520626f740a2020202020 *28434f4d4d414e4420697320616e20616c69617320666f7220434d4443484152290a0a2020202a *204952434e414d45203c49276d206120626f626f742b2b213e3a2054686520495243206e616d65 *20286f7220277265616c206e616d652729206f662074686520626f740a2020202020285245414c *4e414d4520697320616e20616c69617320666f72204952434e414d45290a0a2020202a20555345 *524c495354203c626f742e75736572733e3a204e616d65206f66207468652066696c6520776865 *72652074686520757365726c6973742069732073746f7265640a0a2020202a20534849544c4953 *54203c626f742e736869743e3a204e616d65206f66207468652066696c65207768657265207468 *6520736869746c6973742069732073746f7265640a0a2020202a204c4f4746494c45203c244c4f *474449522f626f742e6c6f673e3a204c6f636174696f6e206f662074686520626f74206c6f6766 *696c65202873657420746869730a2020202020746f20602f6465762f6e756c6c2720746f206469 *7361626c65206c6f6767696e67292e0a0a2020202a20534552564552203c4e6f6e653e3a205468 *697320737065636966696573207468652073657276657220746f20636f6e6e65637420746f2e20 *4e6f746520746861740a202020202074686973206861732061207370656369616c2073796e7461 *782e0a0a2020202a204348414e4e454c203c4e6f6e653e3a205468697320737065636966696573 *2061206368616e6e656c2074686520626f742077696c6c206a6f696e207768656e2069740a2020 *2020207374617274732075702e205468697320616c736f206861732061207370656369616c2073 *796e7461782e0a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2073 *65727665722073796e7461782c20204e6578743a206368616e6e656c2073796e7461782c202050 *7265763a20626f742e636f6e662c202055703a20626f742e636f6e660a0a322e312e312e312073 *65727665722073796e7461780a2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e0a0a534552 *564552203d205345525645525f4e414d45205b504f5254205b50415353574f52445d5d0a0a2020 *20546869732077696c6c206d616b6520426f626f742b2b20617474656d707420746f20636f6e6e *65637420746f205345525645525f4e414d45206f6e20706f72740a504f52542077697468207468 *652070617373776f72642050415353574f52442e205345525645525f4e414d452073686f756c64 *206265207468652061646472657373206f660a746865207365727665722e20504f525420616e64 *2050415353574f524420617265206f7074696f6e616c2e20596f75206d617920757365206d6f72 *65207468616e206f6e650a736572766572206c696e653b20426f626f742b2b2077696c6c206174 *74656d707420746f20636f6e6e65637420746f20746865206669727374206f6e6520616e642c20 *69660a6974206661696c732c2077696c6c20636f6e6e65637420746f20746865206e657874206f *6e6520696e20746865206c6973742e20546865726520697320616c736f20610a636f6d6d616e64 *20746f2063617573652074686520626f7420746f206379636c6520736572766572732e20417420 *7468652070726573656e742074696d6520426f626f742b2b0a63616e6e6f7420636f6e6e656374 *20746f206d6f7265207468616e206f6e652073657276657220617420612074696d652e20546869 *73206973206120706c616e6e65640a66656174757265206f6620332e3020287768696368206973 *20612076657279206c6f6e672077617920617761793b207468652063757272656e742073747275 *6374757265206f660a7468652070726f6772616d20776f756c64206d616b652069742076657279 *20646966666963756c7420746f2061646420737570706f727420666f7220636f6e6e656374696e *670a746f206d756c7469706c65207365727665727320617420612074696d6520696e2061207573 *61626c65206d616e6e6572292e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e *6f64653a206368616e6e656c2073796e7461782c2020507265763a207365727665722073796e74 *61782c202055703a20626f742e636f6e660a0a322e312e312e32206368616e6e656c2073796e74 *61780a2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e0a0a4348414e4e454c203d204e41 *4d453a494e495449414c5f4d4f4445533a4d4f4445535f544f5f4b4545503a4348414e4e454c5f *4b45590a0a202020596f75206d6179206861766520616e79206e756d626572206f66206368616e *6e656c206c696e65732e205768656e20426f626f742b2b207374617274732069742077696c6c0a *617474656d707420746f206a6f696e20616e64206761696e206f707320696e2065766572792063 *68616e6e656c206c69737465642e2049742077696c6c206a6f696e204e414d450a616e64207365 *7420746865206368616e6e656c206d6f64657320746f20494e495449414c5f4d4f444553202865 *2e672e20226e7422292069662069742069732061626c6520746f0a6761696e206f70657261746f *72207374617475732e2049742077696c6c207468656e206d61696e7461696e204d4f4445535f54 *4f5f4b4545502e204966207468650a6368616e6e656c2072657175697265732061206b65792074 *6f20656e7465722073696d706c7920736574204348414e4e454c5f4b45592e2045766572792061 *7267756d656e740a65786365707420666f72204e414d45206973206f7074696f6e616c2e0a0a20 *20204120666577206578616d706c65206c696e65733a0a0a202020604348414e4e454c203d2023 *666f6f3a6e743a6e743a626172270a0a20202054686520626f742077696c6c206a6f696e206023 *666f6f27207769746820746865206368616e6e656c206b657920606261722720616e642077696c *6c207468656e0a6d61696e7461696e20746865206d6f64657320606e74272e0a0a202020604348 *414e4e454c203d20236261723a3a3a270a0a20202054686520626f742077696c6c206a6f696e20 *60236261722720616e642077696c6c206e6f742073657420616e79206d6f646573206e6f722077 *696c6c2069740a617474656d707420746f206d61696e7461696e20616e79206d6f6465732e0a0a *1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20626f742e75736572732c *2020507265763a20626f742e636f6e662c202055703a20436f6e66696775726174696f6e204669 *6c65730a0a322e312e3220626f742e75736572730a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a60 *626f742e757365727327206973207468652064656661756c742066696c65206e616d65206f6620 *74686520757365726c6973742e204974206d6179206265206368616e6765640a696e2060626f74 *2e636f6e66272e205468652066696c6520636f6e7461696e73206c696e65732077697468207468 *6520666f726d61743a0a0a202020604d41534b3a4348414e4e454c3a4c4556454c3a50524f5445 *4354494f4e3a4155544f2d4f50270a0a2020202a204d41534b2069732074686520686f7374206d *61736b2028652e672e20602a212a757365726e616d650a20202020202e646f6d61696e2e636f6d *2729206f662074686520757365720a0a2020202a204348414e4e454c2069732061206368616e6e *656c206d61736b206f6620746865206368616e6e656c7320746861742074686520757365722068 *61730a202020202070726976696c6967657320746f207573652074686520626f7420696e202865 *2e672e20602a2720666f7220616c6c206368616e6e656c732c2060232a2720666f720a20202020 *20616c6c206e6f6e2d6c6f63616c206368616e6e656c2c206023666f6f2a2720666f7220616c6c *206368616e6e656c73207374617274696e6720776974680a202020202022666f6f2c2220602362 *61722720666f72206368616e6e656c20222362617222206f6e6c792c206574632e290a0a202020 *2a204c4556454c206973207468652075736572206c6576656c206f662074686520757365722028 *2a4e6f74652055736572204c6576656c733a3a292e0a0a2020202a2050524f54454354494f4e20 *6973207468652070726f74656374696f6e206c6576656c206f6620746865207573657220282a4e *6f74650a202020202050726f74656374696f6e3a3a292e0a0a2020202a204155544f2d4f502069 *732073657420746f20636f6e74726f6c207768657468657220612075736572206973206175746f *6d61746963616c6c7920676976656e0a20202020206f70657261746f722070726976696c696765 *73206f6e206368616e6e656c20656e74727920282a4e6f7465204175746f6d61746963204f703a *3a292e0a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20436f6e66 *696775726174696f6e2046696c6520506c6163656d656e742c2020507265763a20436f6e666967 *75726174696f6e2046696c65732c202055703a20436f6e66696775726174696f6e0a0a322e3220 *436f6e66696775726174696f6e2046696c6520506c6163656d656e740a3d3d3d3d3d3d3d3d3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a426f626f742b2b2077696c6c206c6f *6f6b20696e20602f6574632f626f626f7470702f64656661756c742f2720666f72206974732064 *656661756c7420636f6e6669672069660a6e6f6e6520697320737065636966696564206f6e2074 *686520636f6d6d616e64206c696e652e205075742074686520636f6e66696775726174696f6e20 *66696c657320796f750a77616e7420746f206265206c6f616465642062792064656661756c7420 *696e2074686973206469726563746f72792e20496620796f7520617265206e6f7420726f6f7420 *6f720a796f752077616e7420746f206861766520796f7572206f776e20706572736f6e616c2063 *6f6e66696775726174696f6e2c2070757420697420696e0a607e2f2e626f626f7470702f636f6e *6669672f64656661756c742f272e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c2020 *4e6f64653a205573696e672074686520426f742c20204e6578743a20536372697074696e672c20 *20507265763a20436f6e66696775726174696f6e2c202055703a20546f700a0a33205573696e67 *20426f626f742b2b0a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a4649584d453a20737475666620 *686572652e2e2e0a0a2a204d656e753a0a0a2a205374617274696e672074686520426f743a3a0a *2a2055736572204c6576656c733a3a0a2a2050726f74656374696f6e3a3a0a2a204175746f6d61 *746963204f703a3a0a2a204275696c742d496e20436f6d6d616e64733a3a0a0a1f0a46696c653a *20626f626f742b2b2e696e666f2c20204e6f64653a205374617274696e672074686520426f742c *20204e6578743a2055736572204c6576656c732c2020507265763a205573696e67207468652042 *6f742c202055703a205573696e672074686520426f740a0a332e31205374617274696e67207468 *6520426f740a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a54686520626f7420697320 *757375616c6c7920696e7374616c6c65642077697468207468652062696e617279206e616d6520 *60626f626f747070272e20497420616363657074730a74686520666f6c6c6f77696e6720636f6d *6d616e64206c696e6520617267756d656e74733a0a0a2020202a20605b2d2d68656c705d5b2d68 *5d27202d2053686f77732064657461696c65642068656c7020616e642065786974730a0a202020 *2a20605b2d2d76657273696f6e5d5b2d765d27202d2053686f77732076657273696f6e20696e66 *6f726d6174696f6e20616e642065786974730a0a2020202a20605b2d2d6e6f2d6261636b67726f *756e645d5b2d625d27202d2052756e20626f626f742b2b20696e2074686520666f726567726f75 *6e640a0a2020202a20605b2d2d636f6e6669672d66696c652066696c655d5b2d665d27202d2055 *73652066696c6520696e7374656164206f662060626f742e636f6e66270a0a2020202a20605b2d *2d636f6e6669672d646972206469725d5b2d645d27202d20557365206469722061732064697220 *746f206c6f616420636f6e6669672066696c652066726f6d0a0a2020202a20605b2d2d636f6e66 *6967206469725d5b2d635d27202d2053656172636820796f757220636f6e666967207061746820 *2864656661756c747320746f0a20202020206024484f4d452f2e626f626f7470702f636f6e6669 *672f2720616e64207468656e20602f6574632f626f626f7470702f272920666f72206469722061 *6e640a20202020207468656e206c6f61647320796f757220636f6e666967206461746120757369 *6e67206469720a0a2020202a20605b2d2d7379732d636f6e666967206469725d5b2d735d27202d *204c6f6f6b7320666f7220636f6e66696720696e20602f6574632f626f626f7470702f64697227 *2e0a20202020204e6f7465207468617420746865207573657220646972206973207374696c6c20 *73656172636865642066697273740a0a2020202a20605b2d2d757365722d636f6e666967206469 *725d5b2d755d27202d204c6f6f6b7320666f7220636f6e66696720696e0a20202020206024484f *4d452f2e626f626f7470702f636f6e6669672f6469722f272e204e6f7465207468617420746865 *2073797374656d20646972206973207374696c6c0a202020202073656172636865642061667465 *72207468697320696620646972206973206e6f7420666f756e642e0a0a2020202a20605b2d2d64 *656275675d5b2d445d27204d616b657320426f626f742b2b207072696e7420646562756767696e *6720696e666f20616e642072756e20696e207468650a2020202020666f726567726f756e640a0a *0a2020205468652064656661756c7420636f6e66696775726174696f6e20697320726561642066 *726f6d0a6024484f4d452f2e626f626f7470702f636f6e6669672f64656661756c742f2720616e *64207468656e20602f6574632f626f626f7470702f64656661756c742f272069660a7468652075 *73657220636f6e666967206973206e6f7420666f756e642e0a0a20202054686520626f74206465 *6661756c747320746f2072756e6e696e6720696e20746865206261636b67726f756e6420617320 *61206461656d6f6e2e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a *2055736572204c6576656c732c20204e6578743a2050726f74656374696f6e2c2020507265763a *205374617274696e672074686520426f742c202055703a205573696e672074686520426f740a0a *332e322055736572204c6576656c730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a546865726520 *617265207365766572616c2075736572206c6576656c7320617661696c61626c6520696e20426f *626f742b2b20746f2070726f766964652067726164617465640a61636365737320746f20636f6d *6d616e64732e206021616464757365722720616e642060626f742e757365727327207573652074 *6865206e756d6572696320636f64653b0a536368656d6520757365732074686520746578747561 *6c206e616d6520666f7220746865206c6576656c2e2042792064656661756c7420286966206e6f *2063617463682d616c6c0a73657474696e6720697320666f756e6420696e202a4e6f746520626f *742e75736572733a3a2e2920612075736572206973206e6f74206576656e20610a60626f743a75 *7365722d6e6f6e652720616e642063616e6e6f742065786563757465202a616e792a20636f6d6d *616e64732c206576656e20636f6d6d616e64730a617661696c61626c6520746f2060626f743a75 *7365722d6e6f6e65272e0a0a2020302e2060626f743a757365722d6e6f6e6527202d204e6f202a *6275696c742d696e2a20636f6d6d616e6473206d6179206265206578656375746564205f62790a *202020202064656661756c745f2028636f6d6d616e6473206d6179206265206164646564206672 *6f6d20536368656d6520746861742063616e2062652065786563757465640a2020202020627920 *7573657273206f66206c6576656c206e6f6e6520616e6420746865206c6576656c207265717569 *72656420746f2065786563757465206120636f6d6d616e640a20202020206d6179206265206368 *616e6765642066726f6d20536368656d65292e0a0a2020312e2060626f743a757365722d757365 *7227202d2057696c6c2062652061626c6520746f2065786563757465206d6f737420636f6d6d61 *6e647320627574206e6f740a2020202020616c6c20616e642063616e6e6f7420757365206d6173 *6b73206f6e206b69636b7320616e642062616e732e0a0a2020322e2060626f743a757365722d74 *72757374656427202d20466f72206275696c742d696e73207769746820612064656661756c7420 *636f6e66696775726174696f6e0a20202020207468697320757365722068617320616363657373 *20746f207468652073616d6520736574206f6620636f6d6d616e647320617320616e2060757365 *7227206275740a20202020206d617920757365206d61736b73206f6e206b69636b7320616e6420 *62616e732e20536368656d6520636f6d6d616e6473206d61792062652061646465640a20202020 *20776869636820726571756972652061207573657220746f206265206f662074686973206c6576 *656c2e0a0a2020332e2060626f743a757365722d667269656e6427202d20496e20746865206465 *6661756c7420636f6e66696775726174696f6e206120757365722077686f20697320610a202020 *2020667269656e642077696c6c2062652061626c6520746f20646f2065766572797468696e6720 *73686f7274206f662073746f7070696e672074686520626f742e0a2020202020416761696e2c20 *7468657265206d6179206265207573657220616464656420636f6d6d616e647320746861742072 *65717569726520612068696768657220757365720a20202020206c6576656c2e0a0a2020342e20 *60626f743a757365722d6d617374657227202d2054686973206973207468652068696768657374 *2075736572206c6576656c20616e6420686173206163636573730a2020202020746f2065766572 *792066656174757265206f662074686520626f742e0a0a0a1f0a46696c653a20626f626f742b2b *2e696e666f2c20204e6f64653a2050726f74656374696f6e2c20204e6578743a204175746f6d61 *746963204f702c2020507265763a2055736572204c6576656c732c202055703a205573696e6720 *74686520426f740a0a332e332050726f74656374696f6e0a3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a *0a4120757365722061646465642076696120536368656d652c207468652060626f742e75736572 *73272066696c652c206f722060216164647573657227206d61792062650a70726f746563746564 *2066726f6d206265696e672064656f7065642c206b69636b65642c206f722062616e6e65642e20 *5468657265206172652063757272656e746c79206e6f0a73796d626f6c6963206c6576656c7320 *696e20536368656d653b206a7573742075736520746865206e756d6572696320636f64652e0a0a *2020302e204e6f2070726f74656374696f6e0a0a2020312e204e6f2062616e2e20496620612075 *7365722069732062616e6e65642074686520626f742077696c6c20756e62616e2068696d2e2e0a *0a2020322e204e6f206b69636b2e205468652075736572206d6179207374696c6c206265206b69 *636b6564206275742074686520626f742077696c6c206b69636b62616e207468650a2020202020 *757365722077686f206b69636b6564207468652070726f74656374656420757365722e0a0a2020 *332e204e6f2064656f702e2054686520626f742077696c6c20656e737572652074686174207468 *65207573657220616c77617973206d61696e7461696e730a20202020206f70657261746f722073 *74617475732e0a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2041 *75746f6d61746963204f702c20204e6578743a204275696c742d496e20436f6d6d616e64732c20 *20507265763a2050726f74656374696f6e2c202055703a205573696e672074686520426f740a0a *332e34204175746f6d61746963204f700a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a41207573 *6572206d6179206265206175746f6d61746963616c6c7920676976656e206f70657261746f7220 *7374617475732075706f6e20656e746572696e6720610a6368616e6e656c2e2053657420746865 *20414f50206669656c6420746f2022302220746f2064697361626c65206175746f2d6f70206f72 *2022312220746f20656e61626c650a6175746f2d6f702e0a0a1f0a46696c653a20626f626f742b *2b2e696e666f2c20204e6f64653a204275696c742d496e20436f6d6d616e64732c202050726576 *3a204175746f6d61746963204f702c202055703a205573696e672074686520426f740a0a332e35 *204275696c742d496e20436f6d6d616e64730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d *3d0a0a426f626f742b2b20686173206d616e79206275696c742d696e20636f6d6d616e64732074 *686174206d616b652069742075736566756c20776974686f75740a736372697074696e67207375 *70706f72742e20546865207265666572656e6365206c6561766573206f66662074686520636f6d *6d616e6420636861723b2072656d656d6265720a746f2075736520776861746576657220796f75 *20646566696e65642074686520636f6d6d616e64206368617220746f20626520696e2060626f74 *2e636f6e66272e20496620610a636f6d6d616e64206e6565647320746865206368616e6e656c20 *6e616d65207468656e20796f75206d757374207370656369667920746865206368616e6e656c20 *6173207468650a666972737420617267756d656e7420746f2074686520636f6d6d616e64207768 *656e2070726976617465206d6573736167696e672074686520626f74206120636f6d6d616e642e *0a0a434f4d4d414e442020202020202020202020204e45454453204348414e4e454c2020202020 *204d494e204c4556454c20544f205553452020204445534352495054494f4e0a60616374696f6e *272060646f27202020202020596573202020202020202020202020202020205553455220202020 *2020202020202020202020204361757365732074686520626f740a202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020746f20706572666f726d207468650a202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *616374696f6e2060646f2720696e0a202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020746865206375 *7272656e740a202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020206368616e6e656c2e0a606164647573 *657227202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020200a6061646473657276657227202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020200a60616464736869 *742720202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020200a60616c696173272020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020200a6062616e27202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020200a6062616e6c6973742720202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020200a606368616e6e656c73 *272020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020200a606379636c652720202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020200a606463636c6973742720 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020200a60646562616e272020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020200a6064656c73657276657227 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020200a6064656c757365722720202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020200a6064656c7368697427202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020200a6064656f70272020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020200a60646965272020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020200a60646f272020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020200a6065786563757465272020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202a4f6e6c7920617661696c61626c650a20202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202069 *6620736372697074696e670a202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020737570706f72742069 *730a20202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020656e61626c65642a0a6068656c702720202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020200a606964656e74272020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020200a60696e7669746527202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020200a606a6f696e2720202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020200a606b65657027202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020200a606b69636b272020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020200a606b69636b62616e2720202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020200a606c6f616427202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020200a606c6f6164736372697074272020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202a4f6e6c7920617661696c61626c650a20202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202069 *6620736372697074696e670a202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020737570706f72742069 *730a20202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020656e61626c65642a0a606c6f636b2720202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020200a606d6f646527202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020200a606d736727202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020200a606e616d657327202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020200a606e65787473657276657227 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020200a606e69636b272020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020200a606e736c6f6f6b757027202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020200a606f70272020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020200a6070617274272020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020200a6070617373776f726427202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020200a607265636f6e6e6563742720202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020200a60727370796d6573736167652720202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020200a60736176652720202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20200a607361792720202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020200a6073657276657227202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *200a607365727665726c6973742720202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020200a60736574666c6f6f64726174652720202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *0a6073657476657273696f6e272020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020200a60736869746c69737427202020202020202020 *20202020202020202020202020202020202020202020202020202020202020202020202020200a *607370796c69737427202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020200a607370796d657373616765272020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020200a60 *737461747327202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020200a607462616e27202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020202020202020200a6074 *6b62616e2720202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020200a60746f70696327202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020202020202020200a60756e *6c6f636b2720202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020200a60757365726c6973742720202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020200a6077686f *272020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020200a6077686f6973272020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020202020200a0a1f0a4669 *6c653a20626f626f742b2b2e696e666f2c20204e6f64653a20536372697074696e672c20204e65 *78743a20436f6e6365707420496e6465782c2020507265763a205573696e672074686520426f74 *2c202055703a20546f700a0a3420536372697074696e670a2a2a2a2a2a2a2a2a2a2a2a0a0a426f *626f742b2b2773206d6f737420706f77657266756c206665617475726520697320697473207363 *72697074696e672073797374656d2e20596f752077726974650a73637269707473207573696e67 *204775696c6520536368656d652e2054686973206d616e75616c20646f6573206e6f7420636f76 *657220686f7720746f20757365204775696c650a6f7220686f7720746f206c6561726e20536368 *656d652e202a4e6f7465204775696c65205265666572656e6365204d616e75616c3a2028677569 *6c6529546f702c20666f720a746865204775696c65207265666572656e6365206d616e75616c20 *616e640a60687474703a2f2f7777772e6363732e6e65752e6564752f686f6d652f646f7261692f *742d792d736368656d652f742d792d736368656d652e68746d6c2720666f7220610a676f6f6420 *7475746f7269616c206f6e20536368656d652e0a0a2020204e6f7465207468617420696e207072 *6576696f75732076657273696f6e732074686520736372697074696e6720636f6d6d616e647320 *776865726520696e207468650a666f726d2060626f742d46554e4354494f4e272e205468657920 *617265206e6f7720696e2074686520666f726d2060626f743a46554e4354494f4e272e20546865 *206f6c640a6e616d657320617265207374696c6c20617661696c61626c652c2062757420617265 *206465707265636174656420616e642077696c6c2062652072656d6f76656420696e0a426f626f *742b2b20332e302e204e657720636f6d6d616e647320617265206f6e6c7920617661696c61626c *652077697468207468652060626f743a27207072656669782e0a54686520636f6d6d616e642060 *7065726c202d7069202d65206060732f626f742d2f626f743a2f67272720594f55522d46494c45 *53272073686f756c6420626520656e6f7567680a746f20636f6e7665727420796f757220636f64 *6520746f2075736520746865206e65772066756e6374696f6e732e0a0a2a204d656e753a0a0a2a *20416464696e67204e657720436f6d6d616e64733a3a0a2a20486f6f6b733a3a0a2a2053636865 *6d652055736572204c6576656c733a3a0a2a2053656e64696e67204d657373616765733a3a0a2a *204d69736320536372697074696e672053747566663a3a0a0a1f0a46696c653a20626f626f742b *2b2e696e666f2c20204e6f64653a20416464696e67204e657720436f6d6d616e64732c20204e65 *78743a20486f6f6b732c2020507265763a20536372697074696e672c202055703a205363726970 *74696e670a0a342e3120416464696e67204e657720436f6d6d616e64730a3d3d3d3d3d3d3d3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a416464696e672061206e657720636f6d6d616e64206973 *2073696d706c652e20546f2072656769737465722061206e657720636f6d6d616e64207573650a *60626f743a616464636f6d6d616e64272e205468652070726f746f7479706520666f722060626f *743a616464636f6d6d616e64272069730a6028626f743a616464636f6d6d616e64206e616d6520 *66756e63206e656564732d6368616e6e656c3f206e756d2d6f662d61726773206d696e2d6c6576 *656c29272e205468650a606e616d6527206973206120737472696e6720726570726573656e7469 *6e6720746865206e616d65206f662074686520636f6d6d616e64206265696e672061646465642e *0a6066756e632720697320612066756e6374696f6e20616363657074696e6720606e756d2d6f66 *2d617267732720617267756d656e74732e0a606e656564732d6368616e6e656c3f272069732061 *20626f6f6c20746861742069732074727565206966207468652066756e6374696f6e206e656564 *73207468650a6368616e6e656c206e616d6520617320697473206669727374206172672c20616e *642066616c7365206f74686572776973652e20606e756d2d6f662d61726773272069730a746865 *206e756d626572206f662061726773206066756e63272077696c6c2074616b6520616e64206d75 *73742062652077697468696e207a65726f2028302920616e640a7477656e747920283230292e20 *606d696e2d6c6576656c27206973206f6e65206f6620746865202a4e6f746520536368656d6520 *55736572204c6576656c733a3a2e20410a75736572206d757374206265206174206c6561737420 *6120606d696e2d6c6576656c27207573657220746f2075736520746865206e657720636f6d6d61 *6e642e204e6f6e650a6f662074686520617267756d656e7473206172652067756172616e746565 *6420746f206265207061737365643b2069662074686579206172656e2774207468657920617265 *0a73657420746f2074686520656d70747920737472696e6720602222272e20416e206578616d70 *6c65206f662061206e657720636f6d6d616e6420776f756c642062653a0a0a2020202020286465 *66696e65202868656c6c6f206368616e6e656c206e616d65290a20202020202020286966202873 *7472696e673d3f206e616d65202222290a20202020202020202028626f743a736179206368616e *6e656c202248656c6c6f20776f726c642122290a20202020202020202028626f743a7361792063 *68616e6e656c2028737472696e672d617070656e64202248656c6c6f2022206e616d6520222122 *2929290a0a202020202028626f743a616464636f6d6d616e64202268656c6c6f222068656c6c6f *20237420322030290a0a202020546869732077696c6c20646973706c6179202248656c6c6f2057 *6f726c6421222069662063616c6c656420617320602168656c6c6f2720616e64202248656c6c6f *0a576f726c6420605553455227222069662063616c6c656420617320602168656c6c6f20555345 *52272e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20486f6f6b73 *2c20204e6578743a20536368656d652055736572204c6576656c732c2020507265763a20416464 *696e67204e657720436f6d6d616e64732c202055703a20536372697074696e670a0a342e322048 *6f6f6b730a3d3d3d3d3d3d3d3d3d0a0a486f6f6b7320617265206120706f77657266756c206665 *6174757265206f6620426f626f742b2b2e20486f6f6b7320617265206120687962726964206f66 *2069726349490a616e642074696e79206675677565202861204d554420626f742920686f6f6b73 *20776974682061206c6974746c6520626974206f66206578747261207374756666206164646564 *0a696e2e205468652062617369632069646561206f66206120686f6f6b20696620746861742079 *6f75206d617463682061207465787420616761696e737420726567756c61720a65787072657373 *696f6e20616e642063616c6c20612066756e6374696f6e206966207465787420696e2061206d65 *7373616765206d61746368657320746861742072656765782e0a54686520646966666572656e74 *207479706573206f6620686f6f6b732070726f766964656420627920426f626f742b2b20636f72 *726573706f6e6420746f207468650a646966666572656e7420636c6173736573206f66206d6573 *7361676573207468617420426f626f742b2b2063616e20726563696576652e204120486f6f6b20 *616c736f206861730a7365766572616c2070726f706572746965732c20696e636c7564696e6720 *697473207072696f7269747920616e642077686574686572206f72206e6f742069742069732061 *0a66616c6c7468726f75676820686f6f6b2e20486967686572207072696f7269747920686f6f6b *7320617265206578656375746564206265666f7265206c6f7765720a7072696f7269747920686f *6f6b7320616e642066616c6c7468726f75676820686f6f6b732061726520657865637574656420 *6265666f72650a6e6f6e2d66616c6c7468726f75676820686f6f6b73206f66207468652073616d *65207072696f726974792e20412066616c6c7468726f75676820686f6f6b2063616e0a6d617463 *6820616e642070726f63657373696e67206f6620686f6f6b732077696c6c20636f6e74696e7565 *3b20617320736f6f6e206173207468652066697273740a6e6f6e2d66616c6c7468726f75676820 *686f6f6b73206d6174636865732070726f63657373696e67206f6620686f6f6b732073746f7073 *2e0a0a2a204d656e753a0a0a2a204372656174696e67206120486f6f6b3a3a0a2a20486f6f6b20 *54797065733a3a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2043 *72656174696e67206120486f6f6b2c20204e6578743a20486f6f6b2054797065732c2020507265 *763a20486f6f6b732c202055703a20486f6f6b730a0a342e322e31204372656174696e67206120 *486f6f6b0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a546f206164642061206e65 *7720686f6f6b20796f7520757365207468652066756e6374696f6e2060626f743a616464686f6f *6b272e2060626f743a616464686f6f6b272069730a70726f746f7479706564206173206028626f *743a616464686f6f6b20747970652072656765782066756e6374696f6e207072692066616c6c20 *6e616d6529272e206074797065270a737065636966696573207468652074797065206f6620686f *6f6b2028746865207479706573206f6620686f6f6b7320617265206c697374656420696e202a4e *6f746520486f6f6b0a54797065733a3a292e20607265676578272069732061207374616e646172 *6420726567756c61722065787072657373696f6e2e20496620607265676578272069730a6d6174 *636865642c206066756e6374696f6e272077696c6c2062652063616c6c65642e206066756e6374 *696f6e272077696c6c2074616b65206120646966666572656e740a6e756d626572206f66206172 *677320646570656e64696e67206f6e2074686520686f6f6b20747970652e206070726927207370 *6563696669657320746865207072696f726974790a6f662074686520686f6f6b2d2d6869676865 *72207072696f7269747920686f6f6b73206172652065786563757465642066697273742e205468 *697320617267756d656e742069730a6f7074696f6e616c20616e642064656661756c747320746f *206030272e206066616c6c2720697320602374272069662074686520686f6f6b20697320610a66 *616c6c7468726f75676820686f6f6b20616e6420602366272069732074686520686f6f6b206973 *206e6f7420612066616c6c7468726f75676820686f6f6b2e20546869730a61726720697320616c *736f206f7074696f6e616c20616e642064656661756c7420746f20602374272e20606e616d6527 *20697320746865206f7074696f6e616c206e616d650a6f662074686520686f6f6b207468617420 *64656661756c747320746f202244454641554c54222e20496620796f752073657420746865206e *616d65207468656e20796f750a63616e2068617665206d6f7265207468616e206f6e6520686f6f *6b2074686174206d617463686573207468652073616d65207265676578702c206173206c6f6e67 *2061730a746865792068617665207468652073616d65206e616d652e20452e672e20696e206120 *6c6f672073637269707420796f7520636f756c642068617665207468650a726567657870732066 *6f7220746865206c6f672066756e6374696f6e20616c6c2062652060222e2a222720616e642073 *6574207468656972206e616d657320746f0a60226c6f67222720746f2061766f6964206120636f *6e666c6963742077697468206f7468657220686f6f6b732e0a0a1f0a46696c653a20626f626f74 *2b2b2e696e666f2c20204e6f64653a20486f6f6b2054797065732c2020507265763a2043726561 *74696e67206120486f6f6b2c202055703a20486f6f6b730a0a342e322e3220486f6f6b20547970 *65730a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a486572652069732061206c697374206f6620 *74686520766172696f757320686f6f6b7320617265206e6f746573206f6e2065616368206f6e65 *2e205468652067656e6572616c0a666f726d6174206f66206120686f6f6b2069733a0a0a202020 *2a2060686f6f6b732f6e616d65272028746869732069732074686520536368656d652076617269 *61626c65206e616d65206f662074686520686f6f6b290a20202020202020202d20446573637269 *7074696f6e206f662074686520686f6f6b0a0a20202020202020202d2041524731204152473220 *2e2e2e204152474e0a202020202020202020202020202d20415247313a20646573630a0a202020 *202020202020202020202d20415247323a20646573630a0a202020202020202020202020202d20 *2e2e2e0a0a202020202020202020202020202d204152474e3a20646573630a0a20202054686174 *20736169642c206865726520697320746865206c697374206f6620617661696c61626c6520686f *6f6b733a204649584d453a20777269746520646f63730a0a2020202a2060686f6f6b732f616374 *696f6e270a20202020202020202d205468697320686f6f6b206973207472696767657265642077 *68656e20736f6d656f6e6520706572666f726d7320616e20616374696f6e2e0a0a202020202020 *20202d2046524f4d2c20544f2c20414354494f4e0a202020202020202020202020202d2046524f *4d3a2074686973206973207468652061646472657373206f662074686520706572736f6e207468 *617420706572666f726d65640a20202020202020202020202020202074686520616374696f6e20 *696e2074686520666f726d20604e49434b20212055534552204020484f5354272028776974686f *7574207468650a202020202020202020202020202020737061636573292e0a0a20202020202020 *2020202020202d20544f3a20546869732069732074686520746172676574206f66207468652061 *6374696f6e2c2077686963682069732065697468657220610a2020202020202020202020202020 *206368616e6e656c206f722074686520426f742773206e69636b2e0a0a20202020202020202020 *2020202d20414354494f4e3a2054686973206973207468652074657874206f6620746865206163 *74696f6e2e20452e672e20696620736f6d656f6e650a2020202020202020202020202020206469 *6420602a20666f6f62617220646f65732062617a272c207468656e20414354494f4e20776f756c *642062652074686520737472696e670a2020202020202020202020202020206022646f65732062 *617a22272e0a0a2020202a2060686f6f6b732f6e69636b6e616d65270a20202020202020202d20 *4465736372697074696f6e206f662074686520686f6f6b0a0a20202020202020202d2023206f66 *20617267730a202020202020202020202020202d206061726731273a20646573630a0a2020202a *2060686f6f6b732f7369676e6f6666270a20202020202020202d204465736372697074696f6e20 *6f662074686520686f6f6b0a0a20202020202020202d2023206f6620617267730a202020202020 *202020202020202d206061726731273a20646573630a0a2020202a2060686f6f6b732f63746370 *270a20202020202020202d204465736372697074696f6e206f662074686520686f6f6b0a0a2020 *2020202020202d2023206f6620617267730a202020202020202020202020202d20606172673127 *3a20646573630a0a2020202a2060686f6f6b732f637463702d7265706c79270a20202020202020 *202d204465736372697074696f6e206f662074686520686f6f6b0a0a20202020202020202d2023 *206f6620617267730a202020202020202020202020202d206061726731273a20646573630a0a20 *20202a2060686f6f6b732f646973636f6e6e656374270a20202020202020202d20446573637269 *7074696f6e206f662074686520686f6f6b0a0a20202020202020202d2023206f6620617267730a *202020202020202020202020202d206061726731273a20646573630a0a2020202a2060686f6f6b *732f666c6f6f64270a20202020202020202d204465736372697074696f6e206f66207468652068 *6f6f6b0a0a20202020202020202d2023206f6620617267730a202020202020202020202020202d *206061726731273a20646573630a0a2020202a2060686f6f6b732f696e76697465270a20202020 *202020202d204465736372697074696f6e206f662074686520686f6f6b0a0a2020202020202020 *2d2023206f6620617267730a202020202020202020202020202d206061726731273a2064657363 *0a0a2020202a2060686f6f6b732f6a6f696e270a20202020202020202d20446573637269707469 *6f6e206f662074686520686f6f6b0a0a20202020202020202d2023206f6620617267730a202020 *202020202020202020202d206061726731273a20646573630a0a2020202a2060686f6f6b732f6b *69636b270a20202020202020202d204465736372697074696f6e206f662074686520686f6f6b0a *0a20202020202020202d2023206f6620617267730a202020202020202020202020202d20606172 *6731273a20646573630a0a2020202a2060686f6f6b732f70617274270a20202020202020202d20 *4465736372697074696f6e206f662074686520686f6f6b0a0a20202020202020202d2023206f66 *20617267730a202020202020202020202020202d206061726731273a20646573630a0a2020202a *2060686f6f6b732f6d6f6465270a20202020202020202d204465736372697074696f6e206f6620 *74686520686f6f6b0a0a20202020202020202d2023206f6620617267730a202020202020202020 *202020202d206061726731273a20646573630a0a2020202a2060686f6f6b732f6d657373616765 *270a20202020202020202d204465736372697074696f6e206f662074686520686f6f6b0a0a2020 *2020202020202d2023206f6620617267730a202020202020202020202020202d20606172673127 *3a20646573630a0a2020202a2060686f6f6b732f6e6f74696365270a20202020202020202d2044 *65736372697074696f6e206f662074686520686f6f6b0a0a20202020202020202d2023206f6620 *617267730a202020202020202020202020202d206061726731273a20646573630a0a2020202a20 *60686f6f6b732f7075626c6963270a20202020202020202d204465736372697074696f6e206f66 *2074686520686f6f6b0a0a20202020202020202d2023206f6620617267730a2020202020202020 *20202020202d206061726731273a20646573630a0a2020202a2060686f6f6b732f7075626c6963 *2d6e6f74696365270a20202020202020202d204465736372697074696f6e206f66207468652068 *6f6f6b0a0a20202020202020202d2023206f6620617267730a202020202020202020202020202d *206061726731273a20646573630a0a2020202a2060686f6f6b732f726177270a20202020202020 *202d204465736372697074696f6e206f662074686520686f6f6b0a0a20202020202020202d2023 *206f6620617267730a202020202020202020202020202d206061726731273a20646573630a0a20 *20202a2060686f6f6b732f74696d6572270a20202020202020202d204465736372697074696f6e *206f662074686520686f6f6b0a0a20202020202020202d2023206f6620617267730a2020202020 *20202020202020202d206061726731273a20646573630a0a2020202a2060686f6f6b732f746f70 *6963270a20202020202020202d204465736372697074696f6e206f662074686520686f6f6b0a0a *20202020202020202d2023206f6620617267730a202020202020202020202020202d2060617267 *31273a20646573630a0a2020202a2060686f6f6b732f6463632f626567696e270a202020202020 *20202d205468697320686f6f6b20697320747269676765726564207768656e2061207573657220 *626567696e7320612044434320434841542077697468207468650a20202020202020202020626f *742e0a0a20202020202020202d2046524f4d0a202020202020202020202020202d2046524f4d3a *20546869732069732074686520757365722773206164647265737320696e2074686520666f726d *0a202020202020202020202020202020606e69636b217573657240686f7374272e0a0a2020202a *2060686f6f6b732f6463632f6d657373616765270a20202020202020202d205468697320686f6f *6b20697320747269676765726564207768656e206120757365722073656e64732061206d657373 *61676520746f2074686520626f740a202020202020202020207468726f75676820612044434320 *434841540a0a20202020202020202d2046524f4d204d4553534147450a20202020202020202020 *2020202d2046524f4d3a2054686973206973207468652075736572277320616464726573732069 *6e2074686520666f726d0a202020202020202020202020202020606e69636b217573657240686f *7374272e0a0a202020202020202020202020202d204d4553534147453a20546869732069732074 *6865206d6573736167652074686520757365722073656e7420746f2074686520626f742e0a0a1f *0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20536368656d652055736572 *204c6576656c732c20204e6578743a2053656e64696e67204d657373616765732c202050726576 *3a20486f6f6b732c202055703a20536372697074696e670a0a342e3320536368656d6520557365 *72204c6576656c730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a546865726520 *6172652066697665206c6576656c73207468617420612075736572206d6179206265207768656e *20696e746572666163696e672077697468206120626f743a0a4e4f4e452c20555345522c205452 *55535445445f555345522c20465249454e442c204d41535445522e2054686520536368656d6520 *7661726961626c657320666f72207468650a75736572206c6576656c73206172652060626f743a *757365722d6e6f6e65272c2060626f743a757365722d75736572272c2060626f743a757365722d *74727573746564272c0a60626f743a757365722d667269656e64272c20616e642060626f743a75 *7365722d6d6173746572272e20536565202a4e6f74652055736572204c6576656c733a3a20666f *720a6d6f726520696e666f726d6174696f6e206f6e2055736572204c6576656c732e0a0a202020 *5768656e20616464696e672061206e657720636f6d6d616e642c207468696e6b2061626f757420 *77686f2073686f756c642062652061626c6520746f207573652069742e0a497320796f75722063 *6f6d6d616e6420612067656e6572616c20707572706f736520636f6d6d616e6420746861742068 *656c707320746865206368616e6e656c2028652e672e0a60217365656e27292074686174206576 *6572796f6e652073686f756c642062652061626c6520746f207573653f204f7220697320697420 *736f6d657468696e6720746861740a73686f756c6420626520726573747269637465643f205365 *65202a4e6f74652055736572204c6576656c733a3a20666f7220696e666f726d6174696f6e206f *6e20776861740a6c6576656c2075736572732063616e20646f2077686174207769746820746865 *206275696c7420696e20626f7420636f6d6d616e647320616e64207468696e6b2061626f75740a *77686174206c6576656c2061207573657220796f757220636f6d6d616e64206973207461726765 *7474656420746f77617264732e20596f75206d757374206265205f766572795f0a636172656675 *6c207768656e20676976696e67206e657720636f6d6d616e647320746f206c6f776572206c6576 *656c207573657273206265636175736520796f752063616e0a646f206261736963616c6c792065 *766572797468696e672074686520626f742063616e20646f20776974682061207363726970742e *2041732074686520736372697074696e670a696e74657266616365206265636f6d6573206d6f72 *6520706f77657266756c2c20796f75206d757374207468696e6b206d6f72652061626f75742077 *6861742075736572730a63616e20757365206e657720636f6d6d616e647320796f75206164642e *0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2053656e64696e6720 *4d657373616765732c20204e6578743a204d69736320536372697074696e672053747566662c20 *20507265763a20536368656d652055736572204c6576656c732c202055703a2053637269707469 *6e670a0a342e342053656e64696e67204d657373616765730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d *3d3d3d3d3d3d0a0a546865726520617265207365766572616c207479706573206f66206d657373 *6167657320796f752063616e2073656e64207769746820426f626f742b2b2066726f6d0a736372 *697074732e205468657265206973207468652073696d706c652c2062757420726174686572206c *696d697465642c2060626f743a736179272c0a60626f743a616374696f6e2720616e642060626f *743a6d7367272c20616e6420746865206d6f726520706f77657266756c2c20627574206c6f7765 *72206c6576656c2c0a60626f743a73656e642d4d455353414745272066756e6374696f6e732e20 *4d6f737420626f74732077696c6c2070726f6261626c79206f6e6c79206e656564207468650a68 *6967686572206c6576656c2066756e6374696f6e732c2062757420666f72207468652073616b65 *206f66207768792d6e6f7420426f626f742b2b206c65747320796f750a75736520746865206c6f *776572206c6576656c2066756e6374696f6e732028696e2070726f6772657373292e0a0a2a204d *656e753a0a0a2a2048696768204c6576656c204d6573736167652046756e6374696f6e733a3a0a *2a204c6f77204c6576656c204d6573736167652046756e6374696f6e733a3a0a0a1f0a46696c65 *3a20626f626f742b2b2e696e666f2c20204e6f64653a2048696768204c6576656c204d65737361 *67652046756e6374696f6e732c20204e6578743a204c6f77204c6576656c204d65737361676520 *46756e6374696f6e732c2020507265763a2053656e64696e67204d657373616765732c20205570 *3a2053656e64696e67204d657373616765730a0a342e342e31202248696768204c6576656c2220 *4d6573736167652046756e6374696f6e730a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d *2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a2e2e2e0a0a1f0a46696c653a20626f626f742b2b2e69 *6e666f2c20204e6f64653a204c6f77204c6576656c204d6573736167652046756e6374696f6e73 *2c2020507265763a2048696768204c6576656c204d6573736167652046756e6374696f6e732c20 *2055703a2053656e64696e67204d657373616765730a0a342e342e3220224c6f77204c6576656c *22204d6573736167652046756e6374696f6e730a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d *2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a54686520224c6f77204c6576656c22206d65737361 *67696e672066756e6374696f6e7320616c6c6f7720796f7520746f20646f207468696e6773206c *696b652073656e640a43544350206d657373616765732e20596f752070726f6261626c79207761 *6e7420746f207265616420726663203238313220616e6420746865204354435020737065630a62 *65666f7265207573696e672074686573652e20496620796f752068617665206e6f206964656120 *7768617420746865736520646f2c20726561642072666320323831320a2849524320436c69656e *742050726f746f636f6c2920616e64204354435020737065632e2054686573652066756e637469 *6f6e7320616c6c2072657475726e0a602a756e7370656369666965642a2720616c776179732c20 *736f20646f6e277420757365207468652072657475726e2076616c756520666f7220616e797468 *696e672e0a0a2020202a2060626f743a73656e642d4354435020746f20636f6d6d616e64206d65 *7373616765272060746f272069732074686520746172676574206f6620796f757220435443500a *20202020206d6573736167652c2060636f6d6d616e642720697320746865204354435020636f6d *6d616e642c20616e6420606d65737361676527206973207468650a20202020206d657373616765 *20286f7220617267756d656e747329206f662074686520636f6d6d616e642e204d616b65207375 *726520746f0a202020202060626f743a637463702d71756f74652720746865206d657373616765 *210a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a204d6973632053 *6372697074696e672053747566662c2020507265763a2053656e64696e67204d65737361676573 *2c202055703a20536372697074696e670a0a342e35204d6973632e20536372697074696e672053 *747566660a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a54686573652061 *72652061206665772075736566756c207468696e6773207468617420492074686f756768742070 *656f706c652077726974696e6720736372697074730a6d696768742077616e7420746f206b6e6f *772e0a0a202020496620796f752077616e7420746f206578656375746520636f6465207768656e *2074686520626f742065786974732c206a75737420646f20606164642d686f6f6b210a626f743a *657869742d686f6f6b205448554e4b27207768657265205448554e4b20697320616e2061726775 *6d656e746c6573732070726f6365647572652028610a7468756e6b292e205768656e2074686520 *626f7420657869747320796f7572207468756e6b2077696c6c2062652063616c6c65642e0a0a1f *0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20436f6e6365707420496e64 *65782c20204e6578743a2046756e6374696f6e20496e6465782c2020507265763a205363726970 *74696e672c202055703a20546f700a0a436f6e6365707420496e6465780a2a2a2a2a2a2a2a2a2a *2a2a2a2a0a0a00085b696e64657800085d0a2a204d656e753a0a0a2a204261636b67726f756e64 *206f6e20486f6f6b733a20202020202020202020202020202020202020486f6f6b732e20202020 *20202020202020202020202020286c696e652036290a0a1f0a46696c653a20626f626f742b2b2e *696e666f2c20204e6f64653a2046756e6374696f6e20496e6465782c20204e6578743a20566172 *6961626c6520496e6465782c2020507265763a20436f6e6365707420496e6465782c202055703a *20546f700a0a46756e6374696f6e20496e6465780a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a0008 *5b696e64657800085d0a2a204d656e753a0a0a2a20616464636f6d6d616e643a20202020202020 *202020202020202020202020202020202020202020416464696e67204e657720436f6d6d616e64 *732e202020286c696e652036290a2a20616464686f6f6b3a202020202020202020202020202020 *202020202020202020202020202020204372656174696e67206120486f6f6b2e20202020202020 *286c696e652036290a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20 *5661726961626c6520496e6465782c2020507265763a2046756e6374696f6e20496e6465782c20 *2055703a20546f700a0a5661726961626c6520496e6465780a2a2a2a2a2a2a2a2a2a2a2a2a2a2a *0a0a00085b696e64657800085d0a2a204d656e753a0a0a2a20657869742d686f6f6b3a20202020 *202020202020202020202020202020202020202020202020204d69736320536372697074696e67 *2053747566662e0a20202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020202020286c696e65202020 *39290a2a20686f6f6b732f616374696f6e3a202020202020202020202020202020202020202020 *2020202020486f6f6b2054797065732e20202020202020202020286c696e6520203233290a2a20 *686f6f6b732f637463703a20202020202020202020202020202020202020202020202020202020 *486f6f6b2054797065732e20202020202020202020286c696e6520203530290a2a20686f6f6b73 *2f637463702d7265706c793a20202020202020202020202020202020202020202020486f6f6b20 *54797065732e20202020202020202020286c696e6520203536290a2a20686f6f6b732f6463632f *626567696e3a2020202020202020202020202020202020202020202020486f6f6b205479706573 *2e20202020202020202020286c696e6520313436290a2a20686f6f6b732f6463632f6d65737361 *67653a202020202020202020202020202020202020202020486f6f6b2054797065732e20202020 *202020202020286c696e6520313534290a2a20686f6f6b732f646973636f6e6e6563743a202020 *20202020202020202020202020202020202020486f6f6b2054797065732e202020202020202020 *20286c696e6520203632290a2a20686f6f6b732f666c6f6f643a20202020202020202020202020 *2020202020202020202020202020486f6f6b2054797065732e20202020202020202020286c696e *6520203638290a2a20686f6f6b732f696e766974653a2020202020202020202020202020202020 *202020202020202020486f6f6b2054797065732e20202020202020202020286c696e6520203734 *290a2a20686f6f6b732f6a6f696e3a202020202020202020202020202020202020202020202020 *20202020486f6f6b2054797065732e20202020202020202020286c696e6520203830290a2a2068 *6f6f6b732f6b69636b3a2020202020202020202020202020202020202020202020202020202048 *6f6f6b2054797065732e20202020202020202020286c696e6520203836290a2a20686f6f6b732f *6d6573736167653a20202020202020202020202020202020202020202020202020486f6f6b2054 *797065732e20202020202020202020286c696e6520313034290a2a20686f6f6b732f6d6f64653a *20202020202020202020202020202020202020202020202020202020486f6f6b2054797065732e *20202020202020202020286c696e6520203938290a2a20686f6f6b732f6e69636b6e616d653a20 *2020202020202020202020202020202020202020202020486f6f6b2054797065732e2020202020 *2020202020286c696e6520203338290a2a20686f6f6b732f6e6f746963653a2020202020202020 *202020202020202020202020202020202020486f6f6b2054797065732e20202020202020202020 *286c696e6520313130290a2a20686f6f6b732f706172743a202020202020202020202020202020 *20202020202020202020202020486f6f6b2054797065732e20202020202020202020286c696e65 *20203932290a2a20686f6f6b732f7075626c69633a202020202020202020202020202020202020 *2020202020202020486f6f6b2054797065732e20202020202020202020286c696e652031313629 *0a2a20686f6f6b732f7075626c69632d6e6f746963653a20202020202020202020202020202020 *202020486f6f6b2054797065732e20202020202020202020286c696e6520313232290a2a20686f *6f6b732f7261773a2020202020202020202020202020202020202020202020202020202020486f *6f6b2054797065732e20202020202020202020286c696e6520313238290a2a20686f6f6b732f73 *69676e6f66663a20202020202020202020202020202020202020202020202020486f6f6b205479 *7065732e20202020202020202020286c696e6520203434290a2a20686f6f6b732f74696d65723a *202020202020202020202020202020202020202020202020202020486f6f6b2054797065732e20 *202020202020202020286c696e6520313334290a2a20686f6f6b732f746f7069633a2020202020 *20202020202020202020202020202020202020202020486f6f6b2054797065732e202020202020 *20202020286c696e6520313430290a2a20757365722d667269656e643a20202020202020202020 *2020202020202020202020202020202020536368656d652055736572204c6576656c732e202028 *6c696e6520202036290a2a20757365722d6d61737465723a202020202020202020202020202020 *202020202020202020202020536368656d652055736572204c6576656c732e2020286c696e6520 *202036290a2a20757365722d6e6f6e653a20202020202020202020202020202020202020202020 *20202020202020536368656d652055736572204c6576656c732e2020286c696e6520202036290a *2a20757365722d747275737465643a202020202020202020202020202020202020202020202020 *2020536368656d652055736572204c6576656c732e2020286c696e6520202036290a2a20757365 *722d757365723a2020202020202020202020202020202020202020202020202020202020536368 *656d652055736572204c6576656c732e2020286c696e6520202036290a0a0a1f0a546167205461 *626c653a0a4e6f64653a20546f707f3532370a4e6f64653a20496e74726f64756374696f6e7f31 *3831360a4e6f64653a20436f6e66696775726174696f6e7f323030380a4e6f64653a20436f6e66 *696775726174696f6e2046696c65737f323239350a4e6f64653a20626f742e636f6e667f323531 *300a4e6f64653a207365727665722073796e7461787f333934380a4e6f64653a206368616e6e65 *6c2073796e7461787f343831320a4e6f64653a20626f742e75736572737f353635350a4e6f6465 *3a20436f6e66696775726174696f6e2046696c6520506c6163656d656e747f363535380a4e6f64 *653a205573696e672074686520426f747f373033360a4e6f64653a205374617274696e67207468 *6520426f747f373238360a4e6f64653a2055736572204c6576656c737f383633300a4e6f64653a *2050726f74656374696f6e7f31303038360a4e6f64653a204175746f6d61746963204f707f3130 *3639350a4e6f64653a204275696c742d496e20436f6d6d616e64737f31303938340a4e6f64653a *20536372697074696e677f31353531380a4e6f64653a20416464696e67204e657720436f6d6d61 *6e64737f31363438330a4e6f64653a20486f6f6b737f31373735300a4e6f64653a204372656174 *696e67206120486f6f6b7f31383732390a4e6f64653a20486f6f6b2054797065737f3139383737 *0a4e6f64653a20536368656d652055736572204c6576656c737f32333336300a4e6f64653a2053 *656e64696e67204d657373616765737f32343439340a4e6f64653a2048696768204c6576656c20 *4d6573736167652046756e6374696f6e737f32353131300a4e6f64653a204c6f77204c6576656c *204d6573736167652046756e6374696f6e737f32353333330a4e6f64653a204d69736320536372 *697074696e672053747566667f32363039350a4e6f64653a20436f6e6365707420496e6465787f *32363531390a4e6f64653a2046756e6374696f6e20496e6465787f32363733380a4e6f64653a20 *5661726961626c6520496e6465787f32373033370a1f0a456e6420546167205461626c650a newhex *5468697320697320626f626f742b2b2e696e666f2c2070726f6475636564206279206d616b6569 *6e666f2076657273696f6e20342e372066726f6d0a626f626f742b2b2e746578696e666f2e0a0a *202020546869732066696c6520646f63756d656e747320426f626f742b2b20627920436c696e74 *6f6e20456261646920616e6420457469656e6e65204265726e6172640a286f726967696e616c20 *617574686f722c206e6f206c6f6e67657220776f726b73206f6e2070726f6772616d292e0a0a20 *2020436f7079726967687420323030322c323030342c3230303520436c696e746f6e2045626164 *690a0a2020205065726d697373696f6e206973206772616e74656420746f20636f70792c206469 *737472696275746520616e642f6f72206d6f64696679207468697320646f63756d656e740a756e *64657220746865207465726d73206f662074686520474e55204672656520446f63756d656e7461 *74696f6e204c6963656e73652c2056657273696f6e20312e31206f720a616e79206c6174657220 *76657273696f6e207075626c697368656420627920746865204672656520536f66747761726520 *466f756e646174696f6e3b2077697468206e6f0a496e76617269616e742053656374696f6e732c *2077697468206e6f2046726f6e742d436f7665722054657874732c20616e642077697468206e6f *204261636b2d436f7665720a54657874732e0a0a1f0a46696c653a20626f626f742b2b2e696e66 *6f2c20204e6f64653a20546f702c20204e6578743a20496e74726f64756374696f6e2c20205072 *65763a2028646972292c202055703a2028646972290a0a2020205468697320646f63756d656e74 *2064657363726962657320426f626f742b2b20627920436c696e746f6e20456261646920616e64 *20457469656e6e65204265726e6172640a286f726967696e616c20617574686f722c206e6f206c *6f6e67657220776f726b73206f6e2070726f6772616d292e0a0a2020205468697320646f63756d *656e74206170706c69657320746f2076657273696f6e20322e312e35206f66207468652070726f *6772616d206e616d656420426f626f742b2b0a0a202020436f7079726967687420323030322c32 *30303420436c696e746f6e2045626164690a0a2020205065726d697373696f6e20697320677261 *6e74656420746f20636f70792c206469737472696275746520616e642f6f72206d6f6469667920 *7468697320646f63756d656e740a756e64657220746865207465726d73206f662074686520474e *55204672656520446f63756d656e746174696f6e204c6963656e73652c2056657273696f6e2031 *2e31206f720a616e79206c617465722076657273696f6e207075626c6973686564206279207468 *65204672656520536f66747761726520466f756e646174696f6e3b2077697468206e6f0a496e76 *617269616e742053656374696f6e732c2077697468206e6f2046726f6e742d436f766572205465 *7874732c20616e642077697468206e6f204261636b2d436f7665720a54657874732e0a0a2a204d *656e753a0a0a2a20496e74726f64756374696f6e3a3a0a2a20436f6e66696775726174696f6e3a *3a0a2a205573696e672074686520426f743a3a0a2a20536372697074696e673a3a0a2a20436f6e *6365707420496e6465783a3a0a2a2046756e6374696f6e20496e6465783a3a0a2a205661726961 *626c6520496e6465783a3a0a0a202d2d2d205468652044657461696c6564204e6f6465204c6973 *74696e67202d2d2d0a0a436f6e66696775726174696f6e0a0a2a20436f6e66696775726174696f *6e2046696c65733a3a0a2a20436f6e66696775726174696f6e2046696c6520506c6163656d656e *743a3a0a0a436f6e66696775726174696f6e2046696c65730a0a2a20626f742e636f6e663a3a0a *2a20626f742e75736572733a3a0a0a626f742e636f6e660a0a2a207365727665722073796e7461 *783a3a0a2a206368616e6e656c2073796e7461783a3a0a0a5573696e6720426f626f742b2b0a0a *2a205374617274696e672074686520426f743a3a0a2a2055736572204c6576656c733a3a0a2a20 *50726f74656374696f6e3a3a0a2a204175746f6d61746963204f703a3a0a2a204275696c742d49 *6e20436f6d6d616e64733a3a0a0a536372697074696e670a0a2a20416464696e67204e65772043 *6f6d6d616e64733a3a0a2a20486f6f6b733a3a0a2a20536368656d652055736572204c6576656c *733a3a0a2a2053656e64696e67204d657373616765733a3a0a2a204d6973632053637269707469 *6e672053747566663a3a0a0a486f6f6b730a0a2a204372656174696e67206120486f6f6b3a3a0a *2a20486f6f6b2054797065733a3a0a0a53656e64696e67204d657373616765730a0a2a20486967 *68204c6576656c204d6573736167652046756e6374696f6e733a3a0a2a204c6f77204c6576656c *204d6573736167652046756e6374696f6e733a3a0a0a1f0a46696c653a20626f626f742b2b2e69 *6e666f2c20204e6f64653a20496e74726f64756374696f6e2c20204e6578743a20436f6e666967 *75726174696f6e2c2020507265763a20546f702c202055703a20546f700a0a3120496e74726f64 *756374696f6e0a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a54686973206d616e75616c206665656c *732061627573656420616e64206e65676c65637465642062656361757365206974206861732061 *6c6d6f7374206e6f20636f6e74656e742e0a0a1f0a46696c653a20626f626f742b2b2e696e666f *2c20204e6f64653a20436f6e66696775726174696f6e2c20204e6578743a205573696e67207468 *6520426f742c2020507265763a20496e74726f64756374696f6e2c202055703a20546f700a0a32 *20436f6e66696775726174696f6e0a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a426f626f742b2b *206973206561737920746f20636f6e6669677572652e205365652074686520606578616d706c65 *7327206469726563746f727920666f7220616e0a6578616d706c6520636f6e6669677572617469 *6f6e2e0a0a2a204d656e753a0a0a2a20436f6e66696775726174696f6e2046696c65733a3a0a2a *20436f6e66696775726174696f6e2046696c6520506c6163656d656e743a3a0a0a1f0a46696c65 *3a20626f626f742b2b2e696e666f2c20204e6f64653a20436f6e66696775726174696f6e204669 *6c65732c20204e6578743a20436f6e66696775726174696f6e2046696c6520506c6163656d656e *742c2020507265763a20436f6e66696775726174696f6e2c202055703a20436f6e666967757261 *74696f6e0a0a322e3120436f6e66696775726174696f6e2046696c65730a3d3d3d3d3d3d3d3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a2a204d656e753a0a0a2a20626f742e636f6e663a3a0a2a *20626f742e75736572733a3a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f *64653a20626f742e636f6e662c20204e6578743a20626f742e75736572732c2020507265763a20 *436f6e66696775726174696f6e2046696c65732c202055703a20436f6e66696775726174696f6e *2046696c65730a0a322e312e3120626f742e636f6e660a2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a *2a204d656e753a0a0a2a207365727665722073796e7461783a3a0a2a206368616e6e656c207379 *6e7461783a3a0a0a20202060626f742e636f6e662720636f6e7461696e73206b65792076616c75 *652070616972732073657061726174656420627920603d272e0a0a202020603c6b65793e203d20 *3c76616c75653e270a0a202020436f6d6d656e7473206172652073746172746564207769746820 *612060232720616e642063617573652074686520656e74697265206c696e6520746f2062650a69 *676e6f7265642e205f4e6f746520746861742074686973206f6e6c7920776f726b73207768656e *207468652060232720697320746865206669727374206368617261637465720a6f662074686520 *6c696e655f2e0a0a202020626f742e636f6e6620697320746865206d61696e20636f6e66696775 *726174696f6e2066696c6520666f72206120426f626f742b2b2e2054686520617661696c61626c *650a636f6e66696775726174696f6e207661726961626c657320617265206c6973746564206265 *6c6f7720696e2074686520666f726d617420225641524941424c450a3c64656661756c742d7661 *6c75653e3a206465736372697074696f6e220a0a2020202a204e49434b4e414d45203c426f626f *743e3a20546865206e69636b6e616d65206f662074686520626f7420284e49434b20697320616e *20616c69617320666f720a20202020204e49434b4e414d45290a0a2020202a20555345524e414d *45203c626f626f743e3a205468652049524320757365726e616d65206f662074686520626f740a *0a2020202a20434d4443484152203c213e3a205468652063686172616374657220746861742070 *7265666978657320636f6d6d616e647320676976656e20746f2074686520626f740a2020202020 *28434f4d4d414e4420697320616e20616c69617320666f7220434d4443484152290a0a2020202a *204952434e414d45203c49276d206120626f626f742b2b213e3a2054686520495243206e616d65 *20286f7220277265616c206e616d652729206f662074686520626f740a2020202020285245414c *4e414d4520697320616e20616c69617320666f72204952434e414d45290a0a2020202a20555345 *524c495354203c626f742e75736572733e3a204e616d65206f66207468652066696c6520776865 *72652074686520757365726c6973742069732073746f7265640a0a2020202a20534849544c4953 *54203c626f742e736869743e3a204e616d65206f66207468652066696c65207768657265207468 *6520736869746c6973742069732073746f7265640a0a2020202a204c4f4746494c45203c244c4f *474449522f626f742e6c6f673e3a204c6f636174696f6e206f662074686520626f74206c6f6766 *696c65202873657420746869730a2020202020746f20602f6465762f6e756c6c2720746f206469 *7361626c65206c6f6767696e67292e0a0a2020202a20534552564552203c4e6f6e653e3a205468 *697320737065636966696573207468652073657276657220746f20636f6e6e65637420746f2e20 *4e6f746520746861740a202020202074686973206861732061207370656369616c2073796e7461 *782e0a0a2020202a204348414e4e454c203c4e6f6e653e3a205468697320737065636966696573 *2061206368616e6e656c2074686520626f742077696c6c206a6f696e207768656e2069740a2020 *2020207374617274732075702e205468697320616c736f206861732061207370656369616c2073 *796e7461782e0a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2073 *65727665722073796e7461782c20204e6578743a206368616e6e656c2073796e7461782c202050 *7265763a20626f742e636f6e662c202055703a20626f742e636f6e660a0a322e312e312e312073 *65727665722073796e7461780a2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e0a0a534552 *564552203d205345525645525f4e414d45205b504f5254205b50415353574f52445d5d0a0a2020 *20546869732077696c6c206d616b6520426f626f742b2b20617474656d707420746f20636f6e6e *65637420746f205345525645525f4e414d45206f6e20706f72740a504f52542077697468207468 *652070617373776f72642050415353574f52442e205345525645525f4e414d452073686f756c64 *206265207468652061646472657373206f660a746865207365727665722e20504f525420616e64 *2050415353574f524420617265206f7074696f6e616c2e20596f75206d617920757365206d6f72 *65207468616e206f6e650a736572766572206c696e653b20426f626f742b2b2077696c6c206174 *74656d707420746f20636f6e6e65637420746f20746865206669727374206f6e6520616e642c20 *69660a6974206661696c732c2077696c6c20636f6e6e65637420746f20746865206e657874206f *6e6520696e20746865206c6973742e20546865726520697320616c736f20610a636f6d6d616e64 *20746f2063617573652074686520626f7420746f206379636c6520736572766572732e20417420 *7468652070726573656e742074696d6520426f626f742b2b0a63616e6e6f7420636f6e6e656374 *20746f206d6f7265207468616e206f6e652073657276657220617420612074696d652e20546869 *73206973206120706c616e6e65640a66656174757265206f6620332e3020287768696368206973 *20612076657279206c6f6e672077617920617761793b207468652063757272656e742073747275 *6374757265206f660a7468652070726f6772616d20776f756c64206d616b652069742076657279 *20646966666963756c7420746f2061646420737570706f727420666f7220636f6e6e656374696e *670a746f206d756c7469706c65207365727665727320617420612074696d6520696e2061207573 *61626c65206d616e6e6572292e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e *6f64653a206368616e6e656c2073796e7461782c2020507265763a207365727665722073796e74 *61782c202055703a20626f742e636f6e660a0a322e312e312e32206368616e6e656c2073796e74 *61780a2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e0a0a4348414e4e454c203d204e41 *4d453a494e495449414c5f4d4f4445533a4d4f4445535f544f5f4b4545503a4348414e4e454c5f *4b45590a0a202020596f75206d6179206861766520616e79206e756d626572206f66206368616e *6e656c206c696e65732e205768656e20426f626f742b2b207374617274732069742077696c6c0a *617474656d707420746f206a6f696e20616e64206761696e206f707320696e2065766572792063 *68616e6e656c206c69737465642e2049742077696c6c206a6f696e204e414d450a616e64207365 *7420746865206368616e6e656c206d6f64657320746f20494e495449414c5f4d4f444553202865 *2e672e20226e7422292069662069742069732061626c6520746f0a6761696e206f70657261746f *72207374617475732e2049742077696c6c207468656e206d61696e7461696e204d4f4445535f54 *4f5f4b4545502e204966207468650a6368616e6e656c2072657175697265732061206b65792074 *6f20656e7465722073696d706c7920736574204348414e4e454c5f4b45592e2045766572792061 *7267756d656e740a65786365707420666f72204e414d45206973206f7074696f6e616c2e0a0a20 *20204120666577206578616d706c65206c696e65733a0a0a202020604348414e4e454c203d2023 *666f6f3a6e743a6e743a626172270a0a20202054686520626f742077696c6c206a6f696e206023 *666f6f27207769746820746865206368616e6e656c206b657920606261722720616e642077696c *6c207468656e0a6d61696e7461696e20746865206d6f64657320606e74272e0a0a202020604348 *414e4e454c203d20236261723a3a3a270a0a20202054686520626f742077696c6c206a6f696e20 *60236261722720616e642077696c6c206e6f742073657420616e79206d6f646573206e6f722077 *696c6c2069740a617474656d707420746f206d61696e7461696e20616e79206d6f6465732e0a0a *1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20626f742e75736572732c *2020507265763a20626f742e636f6e662c202055703a20436f6e66696775726174696f6e204669 *6c65730a0a322e312e3220626f742e75736572730a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a60 *626f742e757365727327206973207468652064656661756c742066696c65206e616d65206f6620 *74686520757365726c6973742e204974206d6179206265206368616e6765640a696e2060626f74 *2e636f6e66272e205468652066696c6520636f6e7461696e73206c696e65732077697468207468 *6520666f726d61743a0a0a202020604d41534b3a4348414e4e454c3a4c4556454c3a50524f5445 *4354494f4e3a4155544f2d4f50270a0a2020202a204d41534b2069732074686520686f7374206d *61736b2028652e672e20602a212a757365726e616d650a20202020202e646f6d61696e2e636f6d *2729206f662074686520757365720a0a2020202a204348414e4e454c2069732061206368616e6e *656c206d61736b206f6620746865206368616e6e656c7320746861742074686520757365722068 *61730a202020202070726976696c6967657320746f207573652074686520626f7420696e202865 *2e672e20602a2720666f7220616c6c206368616e6e656c732c2060232a2720666f720a20202020 *20616c6c206e6f6e2d6c6f63616c206368616e6e656c2c206023666f6f2a2720666f7220616c6c *206368616e6e656c73207374617274696e6720776974680a202020202022666f6f2c2220602362 *61722720666f72206368616e6e656c20222362617222206f6e6c792c206574632e290a0a202020 *2a204c4556454c206973207468652075736572206c6576656c206f662074686520757365722028 *2a4e6f74652055736572204c6576656c733a3a292e0a0a2020202a2050524f54454354494f4e20 *6973207468652070726f74656374696f6e206c6576656c206f6620746865207573657220282a4e *6f74650a202020202050726f74656374696f6e3a3a292e0a0a2020202a204155544f2d4f502069 *732073657420746f20636f6e74726f6c207768657468657220612075736572206973206175746f *6d61746963616c6c7920676976656e0a20202020206f70657261746f722070726976696c696765 *73206f6e206368616e6e656c20656e74727920282a4e6f7465204175746f6d61746963204f703a *3a292e0a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20436f6e66 *696775726174696f6e2046696c6520506c6163656d656e742c2020507265763a20436f6e666967 *75726174696f6e2046696c65732c202055703a20436f6e66696775726174696f6e0a0a322e3220 *436f6e66696775726174696f6e2046696c6520506c6163656d656e740a3d3d3d3d3d3d3d3d3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a20202020205b2049206b696e646120 *7468696e6b20746869732073686f756c6420676f206265666f7265207468652064657461696c65 *64206465736372697074696f6e206f660a202020202074686520636f6e6669672066696c652e20 *204920776173206469646e27742073656520697420617420666972737420616e64207761732076 *6572790a20202020206672757374726174656420747279696e6720746f2066696e64206f757420 *5f77686572655f20746f206564697420616c6c207468697320776f6e64657266756c0a20202020 *2073747566662e205d0a0a202020426f626f742b2b2077696c6c206c6f6f6b20696e20602f6574 *632f626f626f7470702f64656661756c742f2720666f72206974732064656661756c7420636f6e *6669670a6966206e6f6e6520697320737065636966696564206f6e2074686520636f6d6d616e64 *206c696e652e205075742074686520636f6e66696775726174696f6e2066696c65730a796f7520 *77616e7420746f206265206c6f616465642062792064656661756c7420696e2074686973206469 *726563746f72792e20496620796f7520617265206e6f7420726f6f740a6f7220796f752077616e *7420746f206861766520796f7572206f776e20706572736f6e616c20636f6e6669677572617469 *6f6e2c2070757420697420696e0a607e2f2e626f626f7470702f636f6e6669672f64656661756c *742f272e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a205573696e *672074686520426f742c20204e6578743a20536372697074696e672c2020507265763a20436f6e *66696775726174696f6e2c202055703a20546f700a0a33205573696e6720426f626f742b2b0a2a *2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a4649584d453a20737475666620686572652e2e2e0a0a2a *204d656e753a0a0a2a205374617274696e672074686520426f743a3a0a2a2055736572204c6576 *656c733a3a0a2a2050726f74656374696f6e3a3a0a2a204175746f6d61746963204f703a3a0a2a *204275696c742d496e20436f6d6d616e64733a3a0a0a1f0a46696c653a20626f626f742b2b2e69 *6e666f2c20204e6f64653a205374617274696e672074686520426f742c20204e6578743a205573 *6572204c6576656c732c2020507265763a205573696e672074686520426f742c202055703a2055 *73696e672074686520426f740a0a332e31205374617274696e672074686520426f740a3d3d3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a54686520626f7420697320757375616c6c7920696e *7374616c6c65642077697468207468652062696e617279206e616d652060626f626f747070272e *20497420616363657074730a74686520666f6c6c6f77696e6720636f6d6d616e64206c696e6520 *617267756d656e74733a0a0a2020202a20605b2d2d68656c705d5b2d685d27202d2053686f7773 *2064657461696c65642068656c7020616e642065786974730a0a2020202a20605b2d2d76657273 *696f6e5d5b2d765d27202d2053686f77732076657273696f6e20696e666f726d6174696f6e2061 *6e642065786974730a0a2020202a20605b2d2d6e6f2d6261636b67726f756e645d5b2d625d2720 *2d2052756e20626f626f742b2b20696e2074686520666f726567726f756e640a0a2020202a2060 *5b2d2d636f6e6669672d66696c652066696c655d5b2d665d27202d205573652066696c6520696e *7374656164206f662060626f742e636f6e66270a0a2020202a20605b2d2d636f6e6669672d6469 *72206469725d5b2d645d27202d20557365206469722061732064697220746f206c6f616420636f *6e6669672066696c652066726f6d0a0a2020202a20605b2d2d636f6e666967206469725d5b2d63 *5d27202d2053656172636820796f757220636f6e6669672070617468202864656661756c747320 *746f0a20202020206024484f4d452f2e626f626f7470702f636f6e6669672f2720616e64207468 *656e20602f6574632f626f626f7470702f272920666f722064697220616e640a20202020207468 *656e206c6f61647320796f757220636f6e6669672064617461207573696e67206469720a0a2020 *202a20605b2d2d7379732d636f6e666967206469725d5b2d735d27202d204c6f6f6b7320666f72 *20636f6e66696720696e20602f6574632f626f626f7470702f646972272e0a20202020204e6f74 *65207468617420746865207573657220646972206973207374696c6c2073656172636865642066 *697273740a0a2020202a20605b2d2d757365722d636f6e666967206469725d5b2d755d27202d20 *4c6f6f6b7320666f7220636f6e66696720696e0a20202020206024484f4d452f2e626f626f7470 *702f636f6e6669672f6469722f272e204e6f74652074686174207468652073797374656d206469 *72206973207374696c6c0a20202020207365617263686564206166746572207468697320696620 *646972206973206e6f7420666f756e642e0a0a2020202a20605b2d2d64656275675d5b2d445d27 *204d616b657320426f626f742b2b207072696e7420646562756767696e6720696e666f20616e64 *2072756e20696e207468650a2020202020666f726567726f756e640a0a20202054686520646566 *61756c7420636f6e66696775726174696f6e20697320726561642066726f6d0a6024484f4d452f *2e626f626f7470702f636f6e6669672f64656661756c742f2720616e64207468656e20602f6574 *632f626f626f7470702f64656661756c742f272069660a746865207573657220636f6e66696720 *6973206e6f7420666f756e642e0a0a20202054686520626f742064656661756c747320746f2072 *756e6e696e6720696e20746865206261636b67726f756e642061732061206461656d6f6e2e0a0a *1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2055736572204c6576656c *732c20204e6578743a2050726f74656374696f6e2c2020507265763a205374617274696e672074 *686520426f742c202055703a205573696e672074686520426f740a0a332e322055736572204c65 *76656c730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a546865726520617265207365766572616c *2075736572206c6576656c7320617661696c61626c6520696e20426f626f742b2b20746f207072 *6f766964652067726164617465640a61636365737320746f20636f6d6d616e64732e2060216164 *64757365722720616e642060626f742e7573657273272075736520746865206e756d6572696320 *636f64653b0a536368656d65207573657320746865207465787475616c206e616d6520666f7220 *746865206c6576656c2e2042792064656661756c7420286966206e6f2063617463682d616c6c0a *73657474696e6720697320666f756e6420696e202a4e6f746520626f742e75736572733a3a2e29 *20612075736572206973206e6f74206576656e20610a60626f743a757365722d6e6f6e65272061 *6e642063616e6e6f742065786563757465202a616e792a20636f6d6d616e64732c206576656e20 *636f6d6d616e64730a617661696c61626c6520746f2060626f743a757365722d6e6f6e65272e0a *0a2020302e2060626f743a757365722d6e6f6e6527202d204e6f202a6275696c742d696e2a2063 *6f6d6d616e6473206d6179206265206578656375746564205f62790a202020202064656661756c *745f2028636f6d6d616e6473206d61792062652061646465642066726f6d20536368656d652074 *6861742063616e2062652065786563757465640a20202020206279207573657273206f66206c65 *76656c206e6f6e6520616e6420746865206c6576656c20726571756972656420746f2065786563 *757465206120636f6d6d616e640a20202020206d6179206265206368616e6765642066726f6d20 *536368656d65292e0a0a2020312e2060626f743a757365722d7573657227202d2057696c6c2062 *652061626c6520746f2065786563757465206d6f737420636f6d6d616e647320627574206e6f74 *0a2020202020616c6c20616e642063616e6e6f7420757365206d61736b73206f6e206b69636b73 *20616e642062616e732e0a0a2020322e2060626f743a757365722d7472757374656427202d2046 *6f72206275696c742d696e73207769746820612064656661756c7420636f6e6669677572617469 *6f6e0a2020202020746869732075736572206861732061636365737320746f207468652073616d *6520736574206f6620636f6d6d616e647320617320616e20607573657227206275740a20202020 *206d617920757365206d61736b73206f6e206b69636b7320616e642062616e732e20536368656d *6520636f6d6d616e6473206d61792062652061646465640a202020202077686963682072657175 *6972652061207573657220746f206265206f662074686973206c6576656c2e0a0a2020332e2060 *626f743a757365722d667269656e6427202d20496e207468652064656661756c7420636f6e6669 *6775726174696f6e206120757365722077686f20697320610a2020202020667269656e64207769 *6c6c2062652061626c6520746f20646f2065766572797468696e672073686f7274206f66207374 *6f7070696e672074686520626f742e0a2020202020416761696e2c207468657265206d61792062 *65207573657220616464656420636f6d6d616e6473207468617420726571756972652061206869 *6768657220757365720a20202020206c6576656c2e0a0a2020342e2060626f743a757365722d6d *617374657227202d20546869732069732074686520686967686573742075736572206c6576656c *20616e6420686173206163636573730a2020202020746f2065766572792066656174757265206f *662074686520626f742e0a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64 *653a2050726f74656374696f6e2c20204e6578743a204175746f6d61746963204f702c20205072 *65763a2055736572204c6576656c732c202055703a205573696e672074686520426f740a0a332e *332050726f74656374696f6e0a3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a41207573657220616464 *65642076696120536368656d652c207468652060626f742e7573657273272066696c652c206f72 *2060216164647573657227206d61792062650a70726f7465637465642066726f6d206265696e67 *2064656f7065642c206b69636b65642c206f722062616e6e65642e205468657265206172652063 *757272656e746c79206e6f0a73796d626f6c6963206c6576656c7320696e20536368656d653b20 *6a7573742075736520746865206e756d6572696320636f64652e0a0a2020302e204e6f2070726f *74656374696f6e0a0a2020312e204e6f2062616e2e204966206120757365722069732062616e6e *65642074686520626f742077696c6c20756e62616e2068696d2e2e0a0a2020322e204e6f206b69 *636b2e205468652075736572206d6179207374696c6c206265206b69636b656420627574207468 *6520626f742077696c6c206b69636b62616e207468650a2020202020757365722077686f206b69 *636b6564207468652070726f74656374656420757365722e0a0a2020332e204e6f2064656f702e *2054686520626f742077696c6c20656e73757265207468617420746865207573657220616c7761 *7973206d61696e7461696e730a20202020206f70657261746f72207374617475732e0a0a1f0a46 *696c653a20626f626f742b2b2e696e666f2c20204e6f64653a204175746f6d61746963204f702c *20204e6578743a204275696c742d496e20436f6d6d616e64732c2020507265763a2050726f7465 *6374696f6e2c202055703a205573696e672074686520426f740a0a332e34204175746f6d617469 *63204f700a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a412075736572206d6179206265206175 *746f6d61746963616c6c7920676976656e206f70657261746f72207374617475732075706f6e20 *656e746572696e6720610a6368616e6e656c2e205365742074686520414f50206669656c642074 *6f2022302220746f2064697361626c65206175746f2d6f70206f722022312220746f20656e6162 *6c650a6175746f2d6f702e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64 *653a204275696c742d496e20436f6d6d616e64732c2020507265763a204175746f6d6174696320 *4f702c202055703a205573696e672074686520426f740a0a332e35204275696c742d496e20436f *6d6d616e64730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a426f626f742b2b2068 *6173206d616e79206275696c742d696e20636f6d6d616e64732074686174206d616b6520697420 *75736566756c20776974686f75740a736372697074696e6720737570706f72742e205468652072 *65666572656e6365206c6561766573206f66662074686520636f6d6d616e6420636861723b2072 *656d656d6265720a746f2075736520776861746576657220796f7520646566696e656420746865 *20636f6d6d616e64206368617220746f20626520696e2060626f742e636f6e66272e2049662061 *0a636f6d6d616e64206e6565647320746865206368616e6e656c206e616d65207468656e20796f *75206d757374207370656369667920746865206368616e6e656c206173207468650a6669727374 *20617267756d656e7420746f2074686520636f6d6d616e64207768656e2070726976617465206d *6573736167696e672074686520626f74206120636f6d6d616e642e0a0a434f4d4d414e44202020 *20202020204e45454453202020202020204d494e204c4556454c2020204445534352495054494f *4e0a2020202020202020202020202020204348414e4e454c2020202020544f2055534520202020 *20200a60616374696f6e272060646f272020596573202020202020202020555345522020202020 *202020204361757365732074686520626f7420746f20706572666f726d207468650a2020202020 *20202020202020202020202020202020202020202020202020202020202020202020616374696f *6e2060646f2720696e207468652063757272656e74206368616e6e656c2e0a6061646475736572 *272020202020202020202020202020202020202020202020202020202020200a60616464736572 *766572272020202020202020202020202020202020202020202020202020202041646473207468 *65207365727665722073706563696669656420627920484f53540a202020202020202020202020 *2020202020202020202020202020202020202020202020202020204e414d45206f722049502041 *44445245535320746f20746865207365727665720a202020202020202020202020202020202020 *2020202020202020202020202020202020202020206c6973742e0a606164647368697427202020 *2020202020202020202020202020202020202020202020202020200a60616c6961732720202020 *202020202020202020202020202020202020202020202020202020204d616b657320616e20616c *6961732c20616e642061646473207468650a202020202020202020202020202020202020202020 *20202020202020202020202020202020202066756e6374696f6e204e4557204e414d452c207468 *61742077696c6c20646f0a20202020202020202020202020202020202020202020202020202020 *202020202020202020202065786163746c79207468652073616d6520636f6d6d616e6420617320 *4f4c440a2020202020202020202020202020202020202020202020202020202020202020202020 *202020204e414d452e0a6062616e27202020202020202020202020202020202020202020202020 *2020202020202020202042616e73204d41534b206f72204e49434b2066726f6d204348414e4e45 *4c2e20596f750a2020202020202020202020202020202020202020202020202020202020202020 *202020202020206e65656420746f20626520612074727573746564207573657220746f2062616e *0a2020202020202020202020202020202020202020202020202020202020202020202020202020 *20776974682061204d41534b2e0a6062616e6c6973742720202020202020202020202020202020 *20202020202020202020202020200a606368616e6e656c73272020202020202020202020202020 *2020202020202020202020202020205072696e747320746865206368616e6e656c287329207768 *6572652074686520626f740a202020202020202020202020202020202020202020202020202020 *20202020202020202020202069732063757272656e746c792e0a606379636c6527202020202020 *20205965732020202020202020202020202020202020202020204d616b65732074686520626f74 *206c6561766520616e64206a6f696e0a2020202020202020202020202020202020202020202020 *202020202020202020202020202020204348414e4e454c2e0a606463636c697374272020202020 *20202020202020202020202020202020202020202020202020476976657320746865206c697374 *206f6620616c6c2044434320436861740a20202020202020202020202020202020202020202020 *2020202020202020202020202020202020636f6e6e656374696f6e732e0a60646562616e272020 *202020202020596573202020202020202020202020202020202020202020446562616e73204d41 *534b206f72204e49434b2066726f6d204348414e4e454c2e0a2020202020202020202020202020 *20202020202020202020202020202020202020202020202020596f75206e65656420746f206265 *20612074727573746564207573657220746f0a2020202020202020202020202020202020202020 *20202020202020202020202020202020202020646562616e20776974682061204d41534b2e0a60 *64656c736572766572272020202020202020202020202020202020202020202020202020202044 *656c65746573207365727665722066726f6d20736572766572206c6973740a2020202020202020 *2020202020202020202020202020202020202020202020202020202020202077686f7365206e75 *6d62657220696e2074686520736572766572206c6973742069730a202020202020202020202020 *202020202020202020202020202020202020202020202020202020534552564552204e554d4245 *522e0a6064656c7573657227202020202020202020202020202020202020202020202020202020 *20202052656d6f766573204e49434b206f72204d41534b2066726f6d207468650a202020202020 *202020202020202020202020202020202020202020202020202020202020202020757365726c69 *73742e0a6064656c73686974272020202020202020202020202020202020202020202020202020 *2020202052656d6f766573204e49434b206f72204d41534b2066726f6d207468650a2020202020 *20202020202020202020202020202020202020202020202020202020202020202020736869746c *6973742e0a6064656f702720202020202020202059657320202020202020202020202020202020 *202020202044656f7073204d41534b206f72204e49434b206f6e204348414e4e454c2e0a606469 *6527202020202020202020202020202020202020202020202020202020202020202020204d616b *65732074686520626f742073746f7020696d6d6564696174656c792e0a60646f27202020202020 *20202020202020202020202020202020202020202020202020202020200a606578656375746527 *2020202020202020202020202020202020202020202020202020202020202a4f6e6c7920617661 *696c61626c6520696620736372697074696e670a20202020202020202020202020202020202020 *2020202020202020202020202020202020202020737570706f727420697320656e61626c65642a *0a6068656c70272020202020202020202020202020202020202020202020202020202020202020 *200a606964656e7427202020202020202020202020202020202020202020202020202020202020 *20204964656e74696669657320796f75206f6e2074686520626f742e204e6f74650a2020202020 *202020202020202020202020202020202020202020202020202020202020202020207468617420 *796f752073686f756c64206e6f742075736520746869730a202020202020202020202020202020 *202020202020202020202020202020202020202020202020636f6d6d616e6420696e207075626c *6963202e2e2e0a60696e7669746527202020202020205965732020202020202020202020202020 *20202020202020496e7669746573204e49434b206f6e204348414e4e454c2e0a606a6f696e2720 *20202020202020202020202020202020202020202020202020202020202020204d616b65732074 *686520626f74206a6f696e204348414e4e454c2e0a606b65657027202020202020202020596573 *2020202020202020202020202020202020202020205365747320746865204d4f44455320746861 *742074686520626f742077696c6c0a202020202020202020202020202020202020202020202020 *2020202020202020202020202020206b65657020666f72204348414e4e454c2e0a606b69636b27 *2020202020202020205965732020202020202020202020202020202020202020204b69636b7320 *4d41534b206f72204e49434b206f7574206f66204348414e4e454c2c0a20202020202020202020 *202020202020202020202020202020202020202020202020202020202062656361757365206f66 *20524541534f4e2e20596f75206e65656420746f20626520610a20202020202020202020202020 *202020202020202020202020202020202020202020202020202074727573746564207573657220 *746f207573652061204d41534b2e0a606b69636b62616e27202020202020596573202020202020 *20202020202020202020202020202042616e73207468656e206b69636b73204d41534b206f7220 *4e49434b206f7574206f660a202020202020202020202020202020202020202020202020202020 *2020202020202020202020204348414e4e454c2c2062656361757365206f6620524541534f4e2e *20596f75206e6565640a2020202020202020202020202020202020202020202020202020202020 *20202020202020202020746f20626520612074727573746564207573657220746f207573652061 *204d41534b2e0a606c6f6164272020202020202020202020202020202020202020202020202020 *2020202020202052656c6f6164732074686520757365726c6973742066726f6d206469736b2e0a *606c6f616473637269707427202020202020202020202020202020202020202020202020202020 *2a4f6e6c7920617661696c61626c6520696620736372697074696e670a20202020202020202020 *2020202020202020202020202020202020202020202020202020202020737570706f7274206973 *20656e61626c65642a0a606c6f636b272020202020202020202020202020202020202020202020 *202020202020202020204c6f636b7320746f706963206f6e204348414e4e454c2e0a606d6f6465 *2720202020202020202059657320202020202020202020202020202020202020202053656e6473 *204d4f444520535452494e47206173206d6f646520666f720a2020202020202020202020202020 *202020202020202020202020202020202020202020202020204348414e4e454c2e0a606d736727 *202020202020202020202020202020202020202020202020202020202020202020200a606e616d *657327202020202020202059657320202020202020202020202020202020202020202053686f77 *7320746865206e69636b6e616d657320616e6420737461747573206f660a202020202020202020 *2020202020202020202020202020202020202020202020202020202020207573657273206f6e20 *4348414e4e454c2e0a606e65787473657276657227202020202020202020202020202020202020 *2020202020202020204d616b65732074686520626f7420636f6e6e65637420746f20746865206e *6578740a2020202020202020202020202020202020202020202020202020202020202020202020 *2020202073657276657220696e2069747320736572766572206c6973742e0a606e69636b272020 *202020202020202020202020202020202020202020202020202020202020204d616b6573207468 *6520626f7420757365206e69636b6e616d65204e49434b2e0a606e736c6f6f6b75702720202020 *20202020202020202020202020202020202020202020202020446f65732061206e616d65736572 *7665722071756572792061626f7574204e49434b0a202020202020202020202020202020202020 *202020202020202020202020202020202020202020686f73742c20484f5354206f722049502041 *4444524553532e0a606f7027202020202020202020202059657320202020202020202020202020 *20202020202020204f7073204e49434b206f6e204348414e4e454c2e0a60706172742720202020 *20202020205965732020202020202020202020202020202020202020204d616b65732074686520 *626f74206c65617665204348414e4e454c2e0a6070617373776f72642720202020202020202020 *202020202020202020202020202020202020204368616e67657320796f75722070617373776f72 *64206f6e2074686520626f742e0a20202020202020202020202020202020202020202020202020 *202020202020202020202020202055736520604e4f4e45272061732070617373776f7264206966 *20796f752077616e740a2020202020202020202020202020202020202020202020202020202020 *20202020202020202020746f20636c6561722069742e20446f206e6f742075736520746869730a *202020202020202020202020202020202020202020202020202020202020202020202020202020 *636f6d6d616e6420696e207075626c6963210a607265636f6e6e65637427202020202020202020 *202020202020202020202020202020202020204d616b65732074686520626f74207265636f6e6e *65637420746f206974730a20202020202020202020202020202020202020202020202020202020 *202020202020202020202063757272656e74207365727665722e0a60727370796d657373616765 *27202020202020202020202020202020202020202020202020202052656d6f76657320796f7520 *66726f6d2074686520737079206c6973742e0a6073617665272020202020202020202020202020 *2020202020202020202020202020202020202053617665732074686520757365726c6973742e0a *607361792720202020202020202020596573202020202020202020202020202020202020202020 *4d616b65732074686520626f7420736179204d455353414745206f6e0a20202020202020202020 *20202020202020202020202020202020202020202020202020202020204348414e4e454c2e0a60 *736572766572272020202020202020202020202020202020202020202020202020202020202053 *656c656374207468652073657276657220746f20636f6e6e65637420746f2e0a20202020202020 *202020202020202020202020202020202020202020202020202020202020202053455256455220 *4e554d42455220697320746865206e756d626572206f66207468650a2020202020202020202020 *2020202020202020202020202020202020202020202020202020202073657276657220696e2074 *6865207365727665726c6973742e0a607365727665726c69737427202020202020202020202020 *20202020202020202020202020202053686f77732074686520626f742773207365727665726c69 *73742e0a60736574666c6f6f647261746527202020202020202020202020202020202020202020 *202020200a6073657476657273696f6e2720202020202020202020202020202020202020202020 *20202020200a60736869746c697374272020202020202020202020202020202020202020202020 *20202020202053686f77732074686520626f74277320736869746c6973742e0a607370796c6973 *742720202020202020202020202020202020202020202020202020202020202053686f77732074 *686520626f742773207370796c6973742e0a607370796d65737361676527202020202020202020 *2020202020202020202020202020202020204164647320796f7520746f20746865207370796c69 *73740a607374617473272020202020202020596573202020202020202020202020202020202020 *2020204769766573204348414e4e454c277320737461746973746963732e0a607462616e272020 *2020202020202059657320202020202020202020202020202020202020202042616e73204e4943 *4b206f72204d41534b2066726f6d204348414e4e454c20666f720a202020202020202020202020 *20202020202020202020202020202020202020202020202020202054494d45207365636f6e6473 *2e0a60746b62616e27202020202020202059657320202020202020202020202020202020202020 *202042616e73204e49434b206f72204d41534b2066726f6d204348414e4e454c20666f720a2020 *202020202020202020202020202020202020202020202020202020202020202020202020205449 *4d45207365636f6e64732c207468656e206b69636b732068696d2f7468656d0a20202020202020 *202020202020202020202020202020202020202020202020202020202020202062656361757365 *206f6620524541534f4e2e0a60746f706963272020202020202020596573202020202020202020 *2020202020202020202020204966206e6f20544f504943697320676976656e2c207072696e7473 *0a2020202020202020202020202020202020202020202020202020202020202020202020202020 *204348414e4e454c277320746f7069632e204f74686572776973652c2074686520626f740a2020 *202020202020202020202020202020202020202020202020202020202020202020202020207769 *6c6c206368616e6765204348414e4e454c277320746f70696320746f0a20202020202020202020 *2020202020202020202020202020202020202020202020202020202020544f5049432e0a60756e *6c6f636b27202020202020205965732020202020202020202020202020202020202020204d616b *65732074686520626f7420756e6c6f636b20746f706963206f6e0a202020202020202020202020 *2020202020202020202020202020202020202020202020202020204348414e4e454c0a60757365 *726c69737427202020202020202020202020202020202020202020202020202020202053686f77 *732074686520626f74277320757365726c6973740a6077686f2720202020202020202020596573 *20202020202020202020202020202020202020202053686f7720796f7572206c6576656c206f6e *204348414e4e454c0a6077686f6973272020202020202020596573202020202020202020202020 *20202020202020202053686f777320696e666f726d6174696f6e2061626f7574204e49434b206f *6e0a20202020202020202020202020202020202020202020202020202020202020202020202020 *20204348414e4e454c0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a *20536372697074696e672c20204e6578743a20436f6e6365707420496e6465782c202050726576 *3a205573696e672074686520426f742c202055703a20546f700a0a3420536372697074696e670a *2a2a2a2a2a2a2a2a2a2a2a0a0a426f626f742b2b2773206d6f737420706f77657266756c206665 *61747572652069732069747320736372697074696e672073797374656d2e20596f752077726974 *650a73637269707473207573696e67204775696c6520536368656d652e2054686973206d616e75 *616c20646f6573206e6f7420636f76657220686f7720746f20757365204775696c650a6f722068 *6f7720746f206c6561726e20536368656d652e202a4e6f7465204775696c65205265666572656e *6365204d616e75616c3a20286775696c6529546f702c20666f720a746865204775696c65207265 *666572656e6365206d616e75616c20616e640a60687474703a2f2f7777772e6363732e6e65752e *6564752f686f6d652f646f7261692f742d792d736368656d652f742d792d736368656d652e6874 *6d6c2720666f7220610a676f6f64207475746f7269616c206f6e20536368656d652e0a0a202020 *4e6f7465207468617420696e2070726576696f75732076657273696f6e73207468652073637269 *7074696e6720636f6d6d616e647320776865726520696e207468650a666f726d2060626f742d46 *554e4354494f4e272e205468657920617265206e6f7720696e2074686520666f726d2060626f74 *3a46554e4354494f4e272e20546865206f6c640a6e616d657320617265207374696c6c20617661 *696c61626c652c2062757420617265206465707265636174656420616e642077696c6c20626520 *72656d6f76656420696e0a426f626f742b2b20332e302e204e657720636f6d6d616e6473206172 *65206f6e6c7920617661696c61626c652077697468207468652060626f743a2720707265666978 *2e0a54686520636f6d6d616e6420607065726c202d7069202d65206060732f626f742d2f626f74 *3a2f67272720594f55522d46494c4553272073686f756c6420626520656e6f7567680a746f2063 *6f6e7665727420796f757220636f646520746f2075736520746865206e65772066756e6374696f *6e732e0a0a2a204d656e753a0a0a2a20416464696e67204e657720436f6d6d616e64733a3a0a2a *20486f6f6b733a3a0a2a20536368656d652055736572204c6576656c733a3a0a2a2053656e6469 *6e67204d657373616765733a3a0a2a204d69736320536372697074696e672053747566663a3a0a *0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20416464696e67204e65 *7720436f6d6d616e64732c20204e6578743a20486f6f6b732c2020507265763a20536372697074 *696e672c202055703a20536372697074696e670a0a342e3120416464696e67204e657720436f6d *6d616e64730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a416464696e672061 *206e657720636f6d6d616e642069732073696d706c652e20546f2072656769737465722061206e *657720636f6d6d616e64207573650a60626f743a616464636f6d6d616e64272e0a0a202d2d2046 *756e6374696f6e3a20626f743a616464636f6d6d616e64206e616d652066756e63206e65656473 *2d6368616e6e656c3f206e756d2d6f662d617267730a202020202020202020206d696e2d6c6576 *656c0a2020202020546865204e414d45206973206120737472696e6720726570726573656e7469 *6e6720746865206e616d65206f662074686520636f6d6d616e64206265696e670a202020202061 *646465642e202046554e4320697320612066756e6374696f6e20616363657074696e67204e554d *2d4f462d4152475320617267756d656e74732e0a20202020204e454544532d4348414e4e454c3f *206973206120626f6f6c20746861742069732074727565206966207468652066756e6374696f6e *206e65656473207468650a20202020206368616e6e656c206e616d652061732069747320666972 *7374206172672c20616e642066616c7365206f74686572776973652e20204e554d2d4f462d4152 *47530a2020202020697320746865206e756d626572206f6620617267732046554e432077696c6c *2074616b6520616e64206d7573742062652077697468696e207a65726f202830290a2020202020 *616e64207477656e747920283230292e20204d494e2d4c4556454c206973206f6e65206f662074 *6865202a4e6f746520536368656d6520557365720a20202020204c6576656c733a3a2e20204120 *75736572206d757374206265206174206c65617374206120606d696e2d6c6576656c2720757365 *7220746f20757365207468650a20202020206e657720636f6d6d616e642e20204e6f6e65206f66 *2074686520617267756d656e7473206172652067756172616e7465656420746f20626520706173 *7365643b0a202020202069662074686579206172656e2774207468657920617265207365742074 *6f2074686520656d70747920737472696e6720602222272e2020416e206578616d706c650a2020 *2020206f662061206e657720636f6d6d616e6420776f756c642062653a0a0a2020202020202020 *202028646566696e65202868656c6c6f206368616e6e656c206e616d65290a2020202020202020 *202020202869662028737472696e673d3f206e616d65202222290a202020202020202020202020 *202028626f743a736179206368616e6e656c202248656c6c6f20776f726c642122290a20202020 *2020202020202020202028626f743a736179206368616e6e656c2028737472696e672d61707065 *6e64202248656c6c6f2022206e616d65202221222929290a0a2020202020202020202028626f74 *3a616464636f6d6d616e64202268656c6c6f222068656c6c6f20237420322030290a0a20202020 *20546869732077696c6c20646973706c6179202248656c6c6f20576f726c642122206966206361 *6c6c656420617320602168656c6c6f2720616e64202248656c6c6f0a2020202020576f726c6420 *605553455227222069662063616c6c656420617320602168656c6c6f2055534552272e0a0a1f0a *46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a20486f6f6b732c20204e657874 *3a20536368656d652055736572204c6576656c732c2020507265763a20416464696e67204e6577 *20436f6d6d616e64732c202055703a20536372697074696e670a0a342e3220486f6f6b730a3d3d *3d3d3d3d3d3d3d0a0a486f6f6b7320617265206120706f77657266756c2066656174757265206f *6620426f626f742b2b2e20486f6f6b7320617265206120687962726964206f662069726349490a *616e642074696e79206675677565202861204d554420626f742920686f6f6b7320776974682061 *206c6974746c6520626974206f662065787472612073747566662061646465640a696e2e205468 *652062617369632069646561206f66206120686f6f6b206966207468617420796f75206d617463 *682061207465787420616761696e737420726567756c61720a65787072657373696f6e20616e64 *2063616c6c20612066756e6374696f6e206966207465787420696e2061206d657373616765206d *61746368657320746861742072656765782e0a54686520646966666572656e7420747970657320 *6f6620686f6f6b732070726f766964656420627920426f626f742b2b20636f72726573706f6e64 *20746f207468650a646966666572656e7420636c6173736573206f66206d657373616765732074 *68617420426f626f742b2b2063616e20726563696576652e204120486f6f6b20616c736f206861 *730a7365766572616c2070726f706572746965732c20696e636c7564696e672069747320707269 *6f7269747920616e642077686574686572206f72206e6f7420697420697320610a66616c6c7468 *726f75676820686f6f6b2e20486967686572207072696f7269747920686f6f6b73206172652065 *78656375746564206265666f7265206c6f7765720a7072696f7269747920686f6f6b7320616e64 *2066616c6c7468726f75676820686f6f6b7320617265206578656375746564206265666f72650a *6e6f6e2d66616c6c7468726f75676820686f6f6b73206f66207468652073616d65207072696f72 *6974792e20412066616c6c7468726f75676820686f6f6b2063616e0a6d6174636820616e642070 *726f63657373696e67206f6620686f6f6b732077696c6c20636f6e74696e75653b20617320736f *6f6e206173207468652066697273740a6e6f6e2d66616c6c7468726f75676820686f6f6b73206d *6174636865732070726f63657373696e67206f6620686f6f6b732073746f70732e0a0a2a204d65 *6e753a0a0a2a204372656174696e67206120486f6f6b3a3a0a2a20486f6f6b2054797065733a3a *0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a204372656174696e67 *206120486f6f6b2c20204e6578743a20486f6f6b2054797065732c2020507265763a20486f6f6b *732c202055703a20486f6f6b730a0a342e322e31204372656174696e67206120486f6f6b0a2d2d *2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a546f206164642061206e657720686f6f6b20 *796f7520757365207468652066756e6374696f6e2060626f743a616464686f6f6b272e0a0a202d *2d2046756e6374696f6e3a20626f743a616464686f6f6b20747970652072656765782066756e63 *74696f6e205b7072692066616c6c206e616d655d0a202020202054595045207370656369666965 *73207468652074797065206f6620686f6f6b2028746865207479706573206f6620686f6f6b7320 *617265206c697374656420696e0a20202020202a4e6f746520486f6f6b2054797065733a3a292e *2052454745582069732061207374616e6461726420726567756c61722065787072657373696f6e *2e2049660a20202020205245474558206973206d6174636865642c2046554e4354494f4e207769 *6c6c2062652063616c6c65642e2046554e4354494f4e2077696c6c2074616b6520610a20202020 *20646966666572656e74206e756d626572206f66206172677320646570656e64696e67206f6e20 *74686520686f6f6b20747970652e20505249207370656369666965730a20202020207468652070 *72696f72697479206f662074686520686f6f6b2d2d686967686572207072696f7269747920686f *6f6b73206172652065786563757465640a202020202066697273742e205468697320617267756d *656e74206973206f7074696f6e616c20616e642064656661756c747320746f206030272e204641 *4c4c20697320602374270a202020202069662074686520686f6f6b20697320612066616c6c7468 *726f75676820686f6f6b20616e6420602366272069732074686520686f6f6b206973206e6f7420 *610a202020202066616c6c7468726f75676820686f6f6b2e20546869732061726720697320616c *736f206f7074696f6e616c20616e642064656661756c7420746f20602374272e0a20202020204e *414d4520697320746865206f7074696f6e616c206e616d65206f662074686520686f6f6b207468 *61742064656661756c747320746f202244454641554c54222e0a2020202020496620796f752073 *657420746865206e616d65207468656e20796f752063616e2068617665206d6f7265207468616e *206f6e6520686f6f6b20746861740a20202020206d617463686573207468652073616d65207265 *676578702c206173206c6f6e6720617320746865792068617665207468652073616d65206e616d *652e20452e672e0a2020202020696e2061206c6f672073637269707420796f7520636f756c6420 *6861766520746865207265676578707320666f7220746865206c6f672066756e6374696f6e0a20 *20202020616c6c2062652060222e2a222720616e6420736574207468656972206e616d65732074 *6f2060226c6f67222720746f2061766f6964206120636f6e666c6963740a202020202077697468 *206f7468657220686f6f6b732e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e *6f64653a20486f6f6b2054797065732c2020507265763a204372656174696e67206120486f6f6b *2c202055703a20486f6f6b730a0a342e322e3220486f6f6b2054797065730a2d2d2d2d2d2d2d2d *2d2d2d2d2d2d2d2d0a0a486572652069732061206c697374206f662074686520766172696f7573 *20686f6f6b732066756e74696f6e7320616e64206e6f746573206f6e2065616368206f6e652e20 *5468650a67656e6572616c20666f726d6174206f66206561636820686f6f6b2064657363726970 *74696f6e20697320617320696620697420776173207761732066756e6374696f6e20746f0a6265 *20646566696e65642c20627574207468657365206465736372696265207468652066756e637469 *6f6e20746f2062652070617373776420746f0a60626f743a6164642d686f6f6b272e2020446f20 *5f6e6f745f206e616d6520796f75722066756e6374696f6e73207468657365206e616d65732e0a *0a20202020205b20426f792c2074686174277320636c756d73792e2020492077616e7420746f20 *73617920746861742074686520686f6f6b2f78782066756e6374696f6e730a2020202020746861 *742061726520646f63756d656e7465642062656c6f7720617265206e6f742066756e74696f6e73 *207468617420796f752063616c6c2e2020546865790a2020202020617265207468652066756e63 *74696f6e732074686174206e6565647320746f2062652070617373656420746f20626f743a6164 *64686f6f6b20666f7220746861740a20202020206b696e64206f6620686f6f6b2e0a0a20202020 *205374696c6c20636c756d73792e20204f682077656c6c2e205d0a0a2020205468617420736169 *642c206865726520697320746865206c697374206f6620617661696c61626c6520686f6f6b7320 *66756e6374696f6e732e20204649584d453a0a777269746520646f63730a0a202d2d2046756e63 *74696f6e3a20686f6f6b732f616374696f6e2066726f6d20746f20616374696f6e0a2020202020 *5468697320686f6f6b20697320747269676765726564207768656e20736f6d656f6e6520706572 *666f726d7320616e20616374696f6e2e202046524f4d2069730a20202020207468652061646472 *657373206f662074686520706572736f6e207468617420706572666f726d656420746865206163 *74696f6e20696e2074686520666f726d0a2020202020604e49434b20212055534552204020484f *5354272028776974686f75742074686520737061636573292e2020544f20697320746865207461 *72676574206f660a202020202074686520616374696f6e2c207768696368206973206569746865 *722061206368616e6e656c206f722074686520426f742773206e69636b2e2020414354494f4e0a *20202020206973207468652074657874206f662074686520616374696f6e2e20452e672e206966 *20736f6d656f6e652064696420602a20666f6f62617220646f65730a202020202062617a272c20 *7468656e20414354494f4e20776f756c642062652074686520737472696e67206022646f657320 *62617a22272e0a0a202d2d2046756e6374696f6e3a20686f6f6b732f6e69636b6e616d65206f6c *642d6e69636b206e65772d6e69636b0a20202020205468697320686f6f6b20676574732063616c *6c6564207768656e20736f6d656f6e65206368616e6765732074686972206e69636b6e616d6520 *66726f6d0a20202020204f4c442d4e49434b20746f204e45572d4e49434b2e0a0a202d2d204675 *6e6374696f6e3a20686f6f6b732f7369676e6f6666206e69636b20726573740a0a202d2d204675 *6e6374696f6e3a20686f6f6b732f63746370206e69636b20746f20636f6d6d616e642072657374 *0a0a202d2d2046756e6374696f6e3a20686f6f6b732f637463702d7265706c79206e69636b2063 *6f6d6d616e6420726573740a0a202d2d2046756e6374696f6e3a20686f6f6b732f646973636f6e *6e656374203f0a20202020205b204973207468697320657665722063616c6c65643f2020492063 *616e27742066696e6420697420696e2074686520736f75726365205d0a0a202d2d2046756e6374 *696f6e3a20686f6f6b732f666c6f6f64206e69636b0a0a202d2d2046756e6374696f6e3a20686f *6f6b732f696e76697465206e69636b206368616e6e656c0a0a202d2d2046756e6374696f6e3a20 *686f6f6b732f6a6f696e206e69636b206368616e6e656c0a0a202d2d2046756e6374696f6e3a20 *686f6f6b732f6b69636b207461726765742066726f6d206368616e6e656c20726561736f6e0a0a *202d2d2046756e6374696f6e3a20686f6f6b732f6c65617665206e69636b206368616e6e656c0a *202d2d2046756e6374696f6e3a20686f6f6b732f70617274206e69636b206368616e6e656c0a0a *202d2d2046756e6374696f6e3a20686f6f6b732f6d6f6465206e69636b206368616e6e656c206d *6f6465730a0a202d2d2046756e6374696f6e3a20686f6f6b732f6d6573736167652066726f6d20 *6d6573736167650a0a202d2d2046756e6374696f6e3a20686f6f6b732f6e6f74696365206e6963 *6b206d6573736167650a0a202d2d2046756e6374696f6e3a20686f6f6b732f7075626c69632066 *726f6d20746f206d6573736167650a0a202d2d2046756e6374696f6e3a20686f6f6b732f707562 *6c69632d6e6f74696365206e69636b20746f206d6573736167650a0a202d2d2046756e6374696f *6e3a20686f6f6b732f726177207261772d6d6573736167650a0a202d2d2046756e6374696f6e3a *20686f6f6b732f74696d65722074696d650a20202020205468697320686f6f6b207365656d7320 *746f2062652063616c6c6564206f6e63652061206d696e7574652e202054494d4520697320696e *206068683a6d6d270a2020202020666f726d61742e0a0a202d2d2046756e6374696f6e3a20686f *6f6b732f746f706963206e69636b206368616e6e656c206e65772d746f7069630a0a202d2d2046 *756e6374696f6e3a20686f6f6b732f73656e642f7075626c6963206d796e69636b206465737420 *6d6573736167650a0a202d2d2046756e6374696f6e3a20686f6f6b732f73656e642f6d65737361 *676520626f746e69636b206d6573736167650a0a202d2d2046756e6374696f6e3a20686f6f6b73 *2f73656e642f616374696f6e206d796e69636b20746f206d6573736167650a0a202d2d2046756e *6374696f6e3a20686f6f6b732f73656e642f63746370206d796e69636b20746f20636f6d6d616e *64206d6573736167650a0a202d2d2046756e6374696f6e3a20686f6f6b732f6463632f63686174 *2d626567696e2066726f6d0a20202020205468697320686f6f6b20697320747269676765726564 *207768656e2061207573657220626567696e732061204443432043484154207769746820746865 *20626f742e0a202020202046524f4d206973207468652075736572277320616464726573732069 *6e2074686520666f726d20606e69636b217573657240686f7374272e0a0a202d2d2046756e6374 *696f6e3a20686f6f6b732f6463632f636861742d6d6573736167652066726f6d206d6573736167 *650a20202020205468697320686f6f6b20697320747269676765726564207768656e2061207573 *65722073656e64732061206d65737361676520746f2074686520626f740a20202020207468726f *75676820612044434320434841542046524f4d2069732074686520757365722773206164647265 *737320696e2074686520666f726d0a2020202020606e69636b217573657240686f7374272e2020 *4d45535341474520697320746865206d6573736167652074686520757365722073656e7420746f *2074686520626f742e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a *20536368656d652055736572204c6576656c732c20204e6578743a2053656e64696e67204d6573 *73616765732c2020507265763a20486f6f6b732c202055703a20536372697074696e670a0a342e *3320536368656d652055736572204c6576656c730a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d *3d3d3d3d0a0a5468657265206172652066697665206c6576656c73207468617420612075736572 *206d6179206265207768656e20696e746572666163696e672077697468206120626f743a0a4e4f *4e452c20555345522c20545255535445445f555345522c20465249454e442c204d41535445522e *2054686520536368656d65207661726961626c657320666f72207468650a75736572206c657665 *6c73206172652060626f743a757365722d6e6f6e65272c2060626f743a757365722d7573657227 *2c2060626f743a757365722d74727573746564272c0a60626f743a757365722d667269656e6427 *2c20616e642060626f743a757365722d6d6173746572272e20536565202a4e6f74652055736572 *204c6576656c733a3a20666f720a6d6f726520696e666f726d6174696f6e206f6e205573657220 *4c6576656c732e0a0a2020205768656e20616464696e672061206e657720636f6d6d616e642c20 *7468696e6b2061626f75742077686f2073686f756c642062652061626c6520746f207573652069 *742e0a497320796f757220636f6d6d616e6420612067656e6572616c20707572706f736520636f *6d6d616e6420746861742068656c707320746865206368616e6e656c2028652e672e0a60217365 *656e272920746861742065766572796f6e652073686f756c642062652061626c6520746f207573 *653f204f7220697320697420736f6d657468696e6720746861740a73686f756c64206265207265 *73747269637465643f20536565202a4e6f74652055736572204c6576656c733a3a20666f722069 *6e666f726d6174696f6e206f6e20776861740a6c6576656c2075736572732063616e20646f2077 *686174207769746820746865206275696c7420696e20626f7420636f6d6d616e647320616e6420 *7468696e6b2061626f75740a77686174206c6576656c2061207573657220796f757220636f6d6d *616e642069732074617267657474656420746f77617264732e20596f75206d757374206265205f *766572795f0a6361726566756c207768656e20676976696e67206e657720636f6d6d616e647320 *746f206c6f776572206c6576656c207573657273206265636175736520796f752063616e0a646f *206261736963616c6c792065766572797468696e672074686520626f742063616e20646f207769 *74682061207363726970742e2041732074686520736372697074696e670a696e74657266616365 *206265636f6d6573206d6f726520706f77657266756c2c20796f75206d757374207468696e6b20 *6d6f72652061626f757420776861742075736572730a63616e20757365206e657720636f6d6d61 *6e647320796f75206164642e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f *64653a2053656e64696e67204d657373616765732c20204e6578743a204d697363205363726970 *74696e672053747566662c2020507265763a20536368656d652055736572204c6576656c732c20 *2055703a20536372697074696e670a0a342e342053656e64696e67204d657373616765730a3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a546865726520617265207365766572616c2074 *79706573206f66206d6573736167657320796f752063616e2073656e64207769746820426f626f *742b2b2066726f6d0a736372697074732e205468657265206973207468652073696d706c652c20 *62757420726174686572206c696d697465642c2060626f743a736179272c0a60626f743a616374 *696f6e2720616e642060626f743a6d7367272c20616e6420746865206d6f726520706f77657266 *756c2c20627574206c6f776572206c6576656c2c0a60626f743a73656e642d4d45535341474527 *2066756e6374696f6e732e204d6f737420626f74732077696c6c2070726f6261626c79206f6e6c *79206e656564207468650a686967686572206c6576656c2066756e6374696f6e732c2062757420 *666f72207468652073616b65206f66207768792d6e6f7420426f626f742b2b206c65747320796f *750a75736520746865206c6f776572206c6576656c2066756e6374696f6e732028696e2070726f *6772657373292e0a0a2a204d656e753a0a0a2a2048696768204c6576656c204d65737361676520 *46756e6374696f6e733a3a0a2a204c6f77204c6576656c204d6573736167652046756e6374696f *6e733a3a0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2048696768 *204c6576656c204d6573736167652046756e6374696f6e732c20204e6578743a204c6f77204c65 *76656c204d6573736167652046756e6374696f6e732c2020507265763a2053656e64696e67204d *657373616765732c202055703a2053656e64696e67204d657373616765730a0a342e342e312022 *48696768204c6576656c22204d6573736167652046756e6374696f6e730a2d2d2d2d2d2d2d2d2d *2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a0a202d2d2046756e637469 *6f6e3a20626f743a736179206368616e6e656c206d6573736167650a202020202053656e642061 *207075626c6963206f722070726976617465204d45535341474520746f204348414e4e454c2e0a *0a202020202053656e64732061206e6f726d616c2074657874206d6573736167652c2061732069 *66206120757365722068616420747970656420697420696e2e20205468650a2020202020444553 *542063616e2062652061206e69636b6e616d65206f722061206368616e6e656c2e0a0a202d2d20 *46756e6374696f6e3a20626f743a616374696f6e206368616e6e656c206d6573736167650a2020 *20202053656e6420616e2022616374696f6e22207479706520204d45535341474520746f204348 *414e4e454c0a0a202d2d2046756e6374696f6e3a20626f743a6d7367206e69636b206d65737361 *67650a20202020205468652073616d652061732069662061207573657220747970656420602f6d *7367206e69636b206d6573736167652720746f207468656972204952430a2020202020636c6965 *6e742e0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a204c6f77204c *6576656c204d6573736167652046756e6374696f6e732c2020507265763a2048696768204c6576 *656c204d6573736167652046756e6374696f6e732c202055703a2053656e64696e67204d657373 *616765730a0a342e342e3220224c6f77204c6576656c22204d6573736167652046756e6374696f *6e730a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a *0a54686520224c6f77204c6576656c22206d6573736167696e672066756e6374696f6e7320616c *6c6f7720796f7520746f20646f207468696e6773206c696b652073656e640a43544350206d6573 *73616765732e20596f752070726f6261626c792077616e7420746f207265616420726663203238 *313220616e6420746865204354435020737065630a6265666f7265207573696e67207468657365 *2e20496620796f752068617665206e6f2069646561207768617420746865736520646f2c207265 *61642072666320323831320a2849524320436c69656e742050726f746f636f6c2920616e642043 *54435020737065632e2054686573652066756e6374696f6e7320616c6c2072657475726e0a602a *756e7370656369666965642a2720616c776179732c20736f20646f6e2774207573652074686520 *72657475726e2076616c756520666f7220616e797468696e672e0a0a202d2d2046756e6374696f *6e3a20626f743a73656e642d4354435020746f20636f6d6d616e64206d6573736167650a202020 *202060746f272069732074686520746172676574206f6620796f75722043544350206d65737361 *67652c2060636f6d6d616e64272069732074686520435443500a2020202020636f6d6d616e642c *20616e6420606d6573736167652720697320746865206d65737361676520286f7220617267756d *656e747329206f66207468650a2020202020636f6d6d616e642e204d616b65207375726520746f *2060626f743a637463702d71756f74652720746865206d657373616765210a0a1f0a46696c653a *20626f626f742b2b2e696e666f2c20204e6f64653a204d69736320536372697074696e67205374 *7566662c2020507265763a2053656e64696e67204d657373616765732c202055703a2053637269 *7074696e670a0a342e35204d6973632e20536372697074696e672053747566660a3d3d3d3d3d3d *3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a546865736520617265206120666577207573 *6566756c207468696e6773207468617420492074686f756768742070656f706c65207772697469 *6e6720736372697074730a6d696768742077616e7420746f206b6e6f772e0a0a20202049662079 *6f752077616e7420746f206578656375746520636f6465207768656e2074686520626f74206578 *6974732c206a75737420646f20606164642d686f6f6b210a626f743a657869742d686f6f6b2054 *48554e4b27207768657265205448554e4b20697320616e20617267756d656e746c657373207072 *6f6365647572652028610a7468756e6b292e205768656e2074686520626f742065786974732079 *6f7572207468756e6b2077696c6c2062652063616c6c65642e0a0a20202020205b204920646964 *6e2774206b6e6f7720776865726520746f2070757420616e79206f662074686573652c20736f20 *49206a73757420737475636b207468656d20696e0a2020202020686572652e0a0a202020202054 *686572652070726f6261626c79206e6565647320746f206265207365766572616c207365637469 *6f6e732061646465642c206c696b65206465616c696e670a202020202077697468207573657273 *20286b69636b696e672c2061646465642c20657463292c206465616c696e672077697468207468 *6520626f7420286368616e6e656c732c0a20202020206e69636b6e616d65206f66207468652062 *6f742c20657463292c207365727665722069737375657320287365727665726c697374292c2075 *736566756c0a2020202020746f6f6c7320286e736c6f6f6b75702c2077686f6973292c20616e64 *20646f206f6e2e205d0a0a202d2d2046756e6374696f6e3a20626f743a61646475736572206e69 *636b2d6f722d6d61736b206362616e6e656c2d6d61736b206c6576656c2070726f74206175746f *2d6f700a20202020204164647320616e207573657220746f2074686520757365726c6973742c20 *666f72206120606e69636b217573657240686f737427206d61746368696e67207468650a202020 *20206f6e6520676976656e2c206f6e2061206368616e6e656c206d61746368696e672074686520 *4348414e4e454c4d41534b20676976656e2e0a0a2020202020546865204c4556454c2063616e20 *62653a2020202020205468652050524f542063616e2062653a2020202020202054686520415554 *4f2d4f502063616e2062653a0a202020202030202d204e6f206c6576656c202020202020202020 *202030202d204e6f2070726f74656374696f6e20202020202030202d204e6f206175746f2d6f70 *0a202020202031202d205573657220202020202020202020202020202031202d204e6f2062616e *2020202020202020202020202031202d204f70206f6e206a6f696e0a202020202032202d205472 *757374656420557365722020202020202032202d204e6f206b69636b2020202020202020202020 *200a202020202033202d20467269656e642020202020202020202020202033202d204e6f206465 *6f702020202020202020202020200a202020202034202d204d6173746572202020202020202020 *2020202020202020202020202020202020202020202020202020200a0a0a202d2d2046756e6374 *696f6e3a20626f743a61646473657276657220686f73746e616d652069702d6164647265737320 *5b706f72746e756d6265725d0a2020202020416464732074686520736572766572207370656369 *6669656420627920484f53544e414d45206f722049502d4144445245535320746f207468652073 *65727665720a20202020206c6973742e0a0a202d2d2046756e6374696f6e3a20626f743a616464 *73686974206e69636b2d6f722d6d61736b206368616e6e656c2d6d61736b206c6576656c205b74 *696d6520726561736f6e5d0a20202020204164647320616e207573657220746f20746865207368 *69746c6973742c20666f722061206e69636b217573657240686f7374206d61746368696e672074 *68650a20202020206f6e6520676976656e2c206f6e2061206368616e6e656c206d61746368696e *6720746865204348414e4e454c4d41534b20676976656e2e0a0a20202020202020202020546865 *204c4556454c2063616e2062653a0a20202020202020202020202030202d204e6f20736869740a *20202020202020202020202031202d204e6f206f700a20202020202020202020202032202d204b *69636b20616e642042616e206f6e206a6f696e0a20202020202020202020202033202d204b6963 *6b20616e642042616e206f6e206a6f696e2c206e6f20646562616e0a0a0a202d2d2046756e6374 *696f6e3a20626f743a62616e206368616e6e656c206d61736b2d6f722d6e69636b0a2020202020 *42616e73204d41534b206f72204e49434b2066726f6d204348414e4e454c2e20596f75206e6565 *6420746f20626520612074727573746564207573657220746f0a202020202062616e2077697468 *2061204d41534b2e0a0a202d2d2046756e6374696f6e3a20626f743a6368616e67652d636f6d6d *616e642d6c6576656c206e69636b2d6f722d6d61736b206368616e6e656c2d6d61736b0a202020 *202020202020206e65772d6c6576656c0a20202020204769766573204e49434b206f72204d4153 *4b206c6576656c204e45572d4c4556454c206f6e206368616e6e656c287329204348414e4e454c *2d4d41534b2e0a20202020204e6f7465207468617420796f752063616e206e6f74206368616e67 *65206c6576656c20666f7220736f6d656f6e652077686f7365206c6576656c2069730a20202020 *2067726561746572207468616e20796f7572732c20616e64207468617420796f752063616e206e *6f7420676976652061206c6576656c2067726561746572207468616e0a2020202020796f757273 *2e0a0a202d2d2046756e6374696f6e3a20626f743a6379636c65206368616e6e656c0a20202020 *204d616b65732074686520626f74206c6561766520616e64206a6f696e204348414e4e454c2e0a *0a202d2d2046756e6374696f6e3a20626f743a646562616e206368616e6e656c206d61736b2d6f *722d6e69636b0a2020202020446562616e73204d41534b206f72204e49434b2066726f6d204348 *414e4e454c2e20596f75206e65656420746f20626520612074727573746564207573657220746f *0a2020202020646562616e20776974682061204d41534b2e0a0a202d2d2046756e6374696f6e3a *20626f743a64656c736572766572207365727665722d6e756d6265720a202020202044656c6574 *6573207365727665722066726f6d20736572766572206c6973742077686f7365206e756d626572 *20696e2074686520736572766572206c6973742069730a20202020205345525645522d4e554d42 *45520a0a202d2d2046756e6374696f6e3a20626f743a64656c75736572206e69636b2d6f722d6d *61736b206368616e6e656c2d6d61736b0a202020202052656d6f766573204e49434b206f72204d *41534b2066726f6d2074686520757365726c6973742e0a0a202d2d2046756e6374696f6e3a2062 *6f743a64656c73686974206e69636b2d6f722d6d61736b206368616e6e656c2d6d61736b0a2020 *20202052656d6f766573204e49434b206f72204d41534b2066726f6d2074686520736869746c69 *73742e0a0a202d2d2046756e6374696f6e3a20626f743a64656f70206368616e6e656c206d6173 *6b2d6f722d6e69636b0a202020202044656f7073204d41534b206f72204e49434b206f6e204348 *414e4e454c2e0a0a202d2d2046756e6374696f6e3a20626f743a64696520726561736f6e0a2020 *2020204d616b65732074686520626f742073746f7020696d6d6564696174656c792e0a0a202d2d *2046756e6374696f6e3a20626f743a646f203f0a0a202d2d2046756e6374696f6e3a20626f743a *696e76697465206368616e6e656c206e69636b0a2020202020496e7669746573204e49434b206f *6e204348414e4e454c2e0a0a202d2d2046756e6374696f6e3a20626f743a6a6f696e206368616e *6e656c0a20202020204d616b65732074686520626f74206a6f696e204348414e4e454c2e0a0a20 *2d2d2046756e6374696f6e3a20626f743a6b656570206368616e6e656c206d6f6465730a202020 *20205365747320746865204d4f44455320746861742074686520626f742077696c6c206b656570 *20666f72204348414e4e454c2e202053656520616c736f2053544154532e0a0a202d2d2046756e *6374696f6e3a20626f743a6b69636b206368616e6e656c206d61736b2d6f722d6e69636b205b72 *6561736f6e5d0a20202020204b69636b73204d41534b206f72204e49434b206f7574206f662043 *48414e4e454c2c2062656361757365206f6620524541534f4e2e2020596f75206e65656420746f *0a2020202020626520612074727573746564207573657220746f207573652061204d41534b2e0a *0a202d2d2046756e6374696f6e3a20626f743a6b69636b62616e206368616e6e656c206d61736b *2d6f722d6e69636b205b726561736f6e5d0a202020202042616e73207468656e206b69636b7320 *4d41534b206f72204e49434b206f7574206f66204348414e4e454c2c2062656361757365206f66 *20524541534f4e2e0a2020202020596f75206e65656420746f2062652061207472757374656420 *7573657220746f207573652061204d41534b2e0a0a202d2d2046756e6374696f6e3a20626f743a *6c6f636b206368616e6e656c0a20202020204c6f636b7320746f706963206f6e204348414e4e45 *4c2e0a0a202d2d2046756e6374696f6e3a20626f743a6c6f67706f72740a20202020205b205072 *6f6261626c792072657475726e7320746865206c6f6720706f72743f205d0a0a202d2d2046756e *6374696f6e3a20626f743a6d6f6465206368616e6e656c206d6f64652d737472696e670a202020 *202053656e6473204d4f44452d535452494e47206173206d6f646520666f72204348414e4e454c *2e0a0a202d2d2046756e6374696f6e3a20626f743a6e6578747365727665720a20202020204d61 *6b65732074686520626f7420636f6e6e65637420746f20746865206e6578742073657276657220 *696e2069747320736572766572206c6973742e0a0a202d2d2046756e6374696f6e3a20626f743a *6e69636b206e69636b0a20202020204d616b65732074686520626f7420757365206e69636b6e61 *6d65204e49434b2e0a0a202d2d2046756e6374696f6e3a20626f743a6f70206368616e6e656c20 *6e69636b0a20202020204f7073204e49434b206f6e204348414e4e454c2e0a0a202d2d2046756e *6374696f6e3a20626f743a70617274206368616e6e656c0a20202020204d616b65732074686520 *626f74206c65617665204348414e4e454c2e0a0a202d2d2046756e6374696f6e3a20626f743a72 *65636f6e6e6563740a20202020204d616b65732074686520626f74207265636f6e6e6563742074 *6f206974732063757272656e74207365727665722e0a0a202d2d2046756e6374696f6e3a20626f *743a736572766572207365727665722d6e756d6265720a202020202053656c6563742074686520 *73657276657220746f20636f6e6e65637420746f2e205345525645522d4e554d42455220697320 *746865206e756d626572206f660a20202020207468652073657276657220696e20746865207365 *727665726c6973742e0a0a202d2d2046756e6374696f6e3a20626f743a736574666c6f6f647261 *7465203f0a0a202d2d2046756e6374696f6e3a20626f743a73657476657273696f6e203f0a0a20 *2d2d2046756e6374696f6e3a20626f743a7462616e206368616e6e656c206e69636b2d6f722d6d *61736b2074696d650a202020202042616e73204e49434b206f72204d41534b2066726f6d204348 *414e4e454c20666f722054494d45207365636f6e64732e0a0a202d2d2046756e6374696f6e3a20 *626f743a746b62616e206368616e6e656c206e69636b2d6f722d6d61736b2074696d65205b7265 *61736f6e5d0a202020202042616e73204e49434b206f72204d41534b2066726f6d204348414e4e *454c20666f722054494d45207365636f6e64732c207468656e206b69636b730a20202020206869 *6d2f7468656d2062656361757365206f6620524541534f4e2e0a0a202d2d2046756e6374696f6e *3a20626f743a746f706963206368616e6e656c20746f7069630a20202020204966206e6f20544f *50494320697320676976656e2c207072696e7473204348414e4e454c277320746f7069632e204f *74686572776973652c2074686520626f740a202020202077696c6c206368616e6765204348414e *4e454c277320746f70696320746f20544f5049432e0a0a202d2d2046756e6374696f6e3a20626f *743a756e6c6f636b206368616e6e656c0a20202020204d616b65732074686520626f7420756e6c *6f636b20746f706963206f6e204348414e4e454c2e0a0a202d2d2046756e6374696f6e3a20626f *743a6765746e69636b6e616d650a20202020205b20476574732074686520626f742773206e6963 *6b6e616d653f205d0a0a202d2d2046756e6374696f6e3a20626f743a6765747365727665720a0a *202d2d2046756e6374696f6e3a20626f743a6765747365727665726c6973740a0a202d2d204675 *6e6374696f6e3a20626f743a666c7573680a20202020205b20466c75736865732074686520736f *636b657420746f20746865207365727665723f205d0a0a202d2d2046756e6374696f6e3a20626f *743a666c757368706f72740a20202020205b20466c757368657320746865206c6f6720706f7274 *3f205d0a0a202d2d2046756e6374696f6e3a20626f743a72616e646f6d203f0a20202020205b20 *52657475726e7320612072616e646f6d206e756d6265723f2020576861742072616e67653f2020 *5768793f205d0a0a202d2d2046756e6374696f6e3a20626f743a64656c636f6d6d616e640a2020 *2020205b2050726f6261626c792064656c65746573206120636f6d6d616e642061646465642077 *6974682060626f743a616464636f6d6d616e6427203f205d0a0a202d2d2046756e6374696f6e3a *20626f743a61646474696d6572203f203f0a0a202d2d2046756e6374696f6e3a20626f743a6465 *6c74696d6572203f0a0a202d2d2046756e6374696f6e3a20626f743a6463632d636861742d7365 *6e64203f203f0a0a20202020205b20416e6420776861742061626f757420746865207374756666 *20646566696e656420696e2060626f626f742d7574696c732e73636d27203f2049206a7573740a *20202020206164646564206974206865726520736f20697420636f756c6420626520736f6d6577 *686572652e202054686572652073686f756c6420616c736f20626520610a202020202073656374 *696f6e206465616c696e672077697468206d6f64756c65732e2020486f7720746f207573652074 *68656d2e202057686174206d6f64756c650a2020202020736372697074732061726520696e2e20 *2057686174206d6f64756c6520626f626f742b2b2070726f7669646564207072696d6974657320 *61726520696e2e0a2020202020416e6420736f206f6e2e205d0a0a202d2d2046756e6374696f6e *3a20626f743a6c6f67202e206d657373616765730a20202020205772697465206173206d616e79 *204d4553534147455320617320796f752077616e7420746f20746865206c6f672e202049662074 *68652061726720697320610a20202020207468756e6b2069742077696c6c206265206578656375 *74656420616e642069742773206f75747075742077696c6c206265207772697474656e20746f20 *7468650a20202020206c6f672e0a0a202d2d2046756e6374696f6e3a20626f743a6c6f61642066 *696c650a0a202d2d2046756e6374696f6e3a20626f743a6c6f61642d6d6f64756c65206d6f6475 *6c652d737065630a0a202d2d2046756e6374696f6e3a20626f743a7573652d6d6f64756c65206d *6f64756c652d737065630a0a202d2d2046756e6374696f6e3a20626f743a6d617463682d6e6f74 *2d6368616e6e656c2072656765780a20202020206d617463682d6e6f742d6368616e6e656c2061 *64647320612070726566697820726567657820746f20796f757220524547455820736f20697420 *646f65736e27740a20202020206d61746368207468652073656e646572206f72206368616e6e65 *6c20696e2061205055424c4943206d6573736167650a0a202d2d2046756e6374696f6e3a20626f *743a6d617463682d746f2d6d652072656765780a20202020206d617463682d746f2d6d65206d61 *746368657320746578742074686174207761732061646472657373656420746f2074686520626f *742077697468206120273a272c0a2020202020272c272c20206f72206e6f7468696e6720616674 *65722074686520626f74206e616d652e0a0a202d2d2046756e6374696f6e3a20626f743a73656e *742d746f2d6d653f206d6573736167650a0a202d2d2046756e6374696f6e3a20626f743a637463 *702d71756f7465206d6573736167650a202020202052657475726e732074686520435443502071 *756f746564206d65737361676520496e707574205f4d555354204e4f545f20636f6e7461696e20 *7468650a2020202020747261696c696e6720605c725c6e27202869742069732061646465642062 *7920746865206d6573736167652073656e64696e6720636f6465292e0a0a202d2d205661726961 *626c653a2025626f743a6c6f6164706174680a0a202d2d2046756e6374696f6e3a2025626f743a *6c6f61642d657874656e73696f6e730a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20 *204e6f64653a20436f6e6365707420496e6465782c20204e6578743a2046756e6374696f6e2049 *6e6465782c2020507265763a20536372697074696e672c202055703a20546f700a0a436f6e6365 *707420496e6465780a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a00085b696e64657800085d0a2a204d *656e753a0a0a2a204261636b67726f756e64206f6e20486f6f6b733a2020202020202020202020 *2020202020202020486f6f6b732e2020202020202020202020202020202020286c696e65203629 *0a0a1f0a46696c653a20626f626f742b2b2e696e666f2c20204e6f64653a2046756e6374696f6e *20496e6465782c20204e6578743a205661726961626c6520496e6465782c2020507265763a2043 *6f6e6365707420496e6465782c202055703a20546f700a0a46756e6374696f6e20496e6465780a *2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a0a00085b696e64657800085d0a2a204d656e753a0a0a2a20 *25626f743a6c6f61642d657874656e73696f6e733a202020202020202020202020202020202020 *4d69736320536372697074696e672053747566662e0a2020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020286c696e6520323036290a2a20626f743a616374696f6e3a202020202020202020 *2020202020202020202020202020202020202048696768204c6576656c204d6573736167652046 *756e6374696f6e732e0a2020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020286c696e6520 *203133290a2a20626f743a616464636f6d6d616e643a2020202020202020202020202020202020 *20202020202020416464696e67204e657720436f6d6d616e64732e20286c696e6520203131290a *2a20626f743a616464686f6f6b3a20202020202020202020202020202020202020202020202020 *20204372656174696e67206120486f6f6b2e2020202020286c696e6520202039290a2a20626f74 *3a6164647365727665723a202020202020202020202020202020202020202020202020204d6973 *6320536372697074696e672053747566662e0a2020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020286c696e6520203334290a2a20626f743a616464736869743a2020202020202020202020 *202020202020202020202020202020204d69736320536372697074696e672053747566662e0a20 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020286c696e6520203338290a2a20626f743a *61646474696d65723a20202020202020202020202020202020202020202020202020204d697363 *20536372697074696e672053747566662e0a202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020286c696e6520313637290a2a20626f743a616464757365723a202020202020202020202020 *2020202020202020202020202020204d69736320536372697074696e672053747566662e0a2020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020286c696e6520203232290a2a20626f743a62 *616e3a202020202020202020202020202020202020202020202020202020202020204d69736320 *536372697074696e672053747566662e0a20202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20286c696e6520203439290a2a20626f743a6368616e67652d636f6d6d616e642d6c6576656c3a *20202020202020202020202020204d69736320536372697074696e672053747566662e0a202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020286c696e6520203534290a2a20626f743a6374 *63702d71756f74653a2020202020202020202020202020202020202020202020204d6973632053 *6372697074696e672053747566662e0a2020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *286c696e6520323030290a2a20626f743a6379636c653a20202020202020202020202020202020 *202020202020202020202020204d69736320536372697074696e672053747566662e0a20202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020286c696e6520203630290a2a20626f743a646363 *2d636861742d73656e643a2020202020202020202020202020202020202020204d697363205363 *72697074696e672053747566662e0a202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202028 *6c696e6520313731290a2a20626f743a646562616e3a2020202020202020202020202020202020 *2020202020202020202020204d69736320536372697074696e672053747566662e0a2020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020286c696e6520203633290a2a20626f743a64656c63 *6f6d6d616e643a2020202020202020202020202020202020202020202020204d69736320536372 *697074696e672053747566662e0a20202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020202020202020202020286c *696e6520313634290a2a20626f743a64656c7365727665723a2020202020202020202020202020 *20202020202020202020204d69736320536372697074696e672053747566662e0a202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020286c696e6520203637290a2a20626f743a64656c7368 *69743a2020202020202020202020202020202020202020202020202020204d6973632053637269 *7074696e672053747566662e0a2020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020286c69 *6e6520203734290a2a20626f743a64656c74696d65723a20202020202020202020202020202020 *202020202020202020204d69736320536372697074696e672053747566662e0a20202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020286c696e6520313639290a2a20626f743a64656c757365 *723a2020202020202020202020202020202020202020202020202020204d697363205363726970 *74696e672053747566662e0a202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020202020202020286c696e *6520203731290a2a20626f743a64656f703a202020202020202020202020202020202020202020 *2020202020202020204d69736320536372697074696e672053747566662e0a2020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020286c696e6520203737290a2a20626f743a6469653a202020 *202020202020202020202020202020202020202020202020202020204d69736320536372697074 *696e672053747566662e0a20202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020202020202020286c696e65 *20203830290a2a20626f743a646f3a202020202020202020202020202020202020202020202020 *20202020202020204d69736320536372697074696e672053747566662e0a202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020286c696e6520203833290a2a20626f743a666c7573683a2020 *2020202020202020202020202020202020202020202020202020204d6973632053637269707469 *6e672053747566662e0a2020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020286c696e6520 *313535290a2a20626f743a666c757368706f72743a202020202020202020202020202020202020 *202020202020204d69736320536372697074696e672053747566662e0a20202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020286c696e6520313538290a2a20626f743a6765746e69636b6e61 *6d653a20202020202020202020202020202020202020202020204d69736320536372697074696e *672053747566662e0a202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020202020286c696e652031 *3438290a2a20626f743a6765747365727665723a20202020202020202020202020202020202020 *2020202020204d69736320536372697074696e672053747566662e0a2020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020286c696e6520313531290a2a20626f743a6765747365727665726c *6973743a2020202020202020202020202020202020202020204d69736320536372697074696e67 *2053747566662e0a20202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020202020286c696e65203135 *33290a2a20626f743a696e766974653a2020202020202020202020202020202020202020202020 *20202020204d69736320536372697074696e672053747566662e0a202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020286c696e6520203835290a2a20626f743a6a6f696e3a202020202020 *2020202020202020202020202020202020202020202020204d69736320536372697074696e6720 *53747566662e0a2020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020286c696e6520203838 *290a2a20626f743a6b6565703a2020202020202020202020202020202020202020202020202020 *202020204d69736320536372697074696e672053747566662e0a20202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020286c696e6520203931290a2a20626f743a6b69636b3a20202020202020 *20202020202020202020202020202020202020202020204d69736320536372697074696e672053 *747566662e0a202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020286c696e652020393429 *0a2a20626f743a6b69636b62616e3a202020202020202020202020202020202020202020202020 *2020204d69736320536372697074696e672053747566662e0a2020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020286c696e6520203938290a2a20626f743a6c6f61643a2020202020202020 *202020202020202020202020202020202020202020204d69736320536372697074696e67205374 *7566662e0a20202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020286c696e6520313834290a *2a20626f743a6c6f61642d6d6f64756c653a202020202020202020202020202020202020202020 *20204d69736320536372697074696e672053747566662e0a202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020286c696e6520313836290a2a20626f743a6c6f636b3a202020202020202020 *2020202020202020202020202020202020202020204d69736320536372697074696e6720537475 *66662e0a2020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020286c696e6520313032290a2a *20626f743a6c6f673a202020202020202020202020202020202020202020202020202020202020 *204d69736320536372697074696e672053747566662e0a20202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020286c696e6520313739290a2a20626f743a6c6f67706f72743a20202020202020 *20202020202020202020202020202020202020204d69736320536372697074696e672053747566 *662e0a202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020286c696e6520313035290a2a20 *626f743a6d617463682d6e6f742d6368616e6e656c3a2020202020202020202020202020202020 *4d69736320536372697074696e672053747566662e0a2020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020286c696e6520313930290a2a20626f743a6d617463682d746f2d6d653a20202020 *202020202020202020202020202020202020204d69736320536372697074696e67205374756666 *2e0a20202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020286c696e6520313934290a2a2062 *6f743a6d6f64653a2020202020202020202020202020202020202020202020202020202020204d *69736320536372697074696e672053747566662e0a202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020286c696e6520313038290a2a20626f743a6d73673a20202020202020202020202020 *20202020202020202020202020202020202048696768204c6576656c204d657373616765204675 *6e6374696f6e732e0a202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020202020286c696e652020 *3136290a2a20626f743a6e6578747365727665723a202020202020202020202020202020202020 *2020202020204d69736320536372697074696e672053747566662e0a2020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020286c696e6520313131290a2a20626f743a6e69636b3a2020202020 *202020202020202020202020202020202020202020202020204d69736320536372697074696e67 *2053747566662e0a20202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020202020202020202020286c696e65203131 *34290a2a20626f743a6f703a202020202020202020202020202020202020202020202020202020 *20202020204d69736320536372697074696e672053747566662e0a202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020286c696e6520313137290a2a20626f743a706172743a202020202020 *2020202020202020202020202020202020202020202020204d69736320536372697074696e6720 *53747566662e0a2020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020286c696e6520313230 *290a2a20626f743a72616e646f6d3a202020202020202020202020202020202020202020202020 *202020204d69736320536372697074696e672053747566662e0a20202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020286c696e6520313631290a2a20626f743a7265636f6e6e6563743a2020 *20202020202020202020202020202020202020202020204d69736320536372697074696e672053 *747566662e0a202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020202020202020286c696e652031323329 *0a2a20626f743a7361793a20202020202020202020202020202020202020202020202020202020 *20202048696768204c6576656c204d6573736167652046756e6374696f6e732e0a202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020286c696e6520202037290a2a20626f743a73656e642d *435443503a202020202020202020202020202020202020202020202020204c6f77204c6576656c *204d6573736167652046756e6374696f6e732e0a20202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020286c696e6520203133290a2a20626f743a73656e742d746f2d6d653f3a202020202020 *20202020202020202020202020202020204d69736320536372697074696e672053747566662e0a *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020202020286c696e6520313938290a2a20626f74 *3a7365727665723a202020202020202020202020202020202020202020202020202020204d6973 *6320536372697074696e672053747566662e0a2020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020286c696e6520313236290a2a20626f743a736574666c6f6f64726174653a202020202020 *202020202020202020202020202020204d69736320536372697074696e672053747566662e0a20 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020202020286c696e6520313330290a2a20626f743a *73657476657273696f6e3a2020202020202020202020202020202020202020202020204d697363 *20536372697074696e672053747566662e0a202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020286c696e6520313332290a2a20626f743a7462616e3a202020202020202020202020202020 *2020202020202020202020202020204d69736320536372697074696e672053747566662e0a2020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020286c696e6520313334290a2a20626f743a74 *6b62616e3a20202020202020202020202020202020202020202020202020202020204d69736320 *536372697074696e672053747566662e0a20202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20286c696e6520313337290a2a20626f743a746f7069633a202020202020202020202020202020 *20202020202020202020202020204d69736320536372697074696e672053747566662e0a202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *2020202020202020202020202020202020202020286c696e6520313431290a2a20626f743a756e *6c6f636b3a202020202020202020202020202020202020202020202020202020204d6973632053 *6372697074696e672053747566662e0a2020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *286c696e6520313435290a2a20626f743a7573652d6d6f64756c653a2020202020202020202020 *202020202020202020202020204d69736320536372697074696e672053747566662e0a20202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020286c696e6520313838290a2a20686f6f6b732f61 *6374696f6e3a2020202020202020202020202020202020202020202020202020486f6f6b205479 *7065732e20202020202020202020286c696e6520203232290a2a20686f6f6b732f637463703a20 *202020202020202020202020202020202020202020202020202020486f6f6b2054797065732e20 *202020202020202020286c696e6520203336290a2a20686f6f6b732f637463702d7265706c793a *20202020202020202020202020202020202020202020486f6f6b2054797065732e202020202020 *20202020286c696e6520203338290a2a20686f6f6b732f6463632f636861742d626567696e3a20 *2020202020202020202020202020202020486f6f6b2054797065732e2020202020202020202028 *6c696e6520203830290a2a20686f6f6b732f6463632f636861742d6d6573736167653a20202020 *202020202020202020202020486f6f6b2054797065732e20202020202020202020286c696e6520 *203834290a2a20686f6f6b732f646973636f6e6e6563743a202020202020202020202020202020 *20202020202020486f6f6b2054797065732e20202020202020202020286c696e6520203430290a *2a20686f6f6b732f666c6f6f643a20202020202020202020202020202020202020202020202020 *2020486f6f6b2054797065732e20202020202020202020286c696e6520203433290a2a20686f6f *6b732f696e766974653a2020202020202020202020202020202020202020202020202020486f6f *6b2054797065732e20202020202020202020286c696e6520203435290a2a20686f6f6b732f6a6f *696e3a20202020202020202020202020202020202020202020202020202020486f6f6b20547970 *65732e20202020202020202020286c696e6520203437290a2a20686f6f6b732f6b69636b3a2020 *2020202020202020202020202020202020202020202020202020486f6f6b2054797065732e2020 *2020202020202020286c696e6520203439290a2a20686f6f6b732f6c656176653a202020202020 *202020202020202020202020202020202020202020486f6f6b2054797065732e20202020202020 *202020286c696e6520203531290a2a20686f6f6b732f6d6573736167653a202020202020202020 *20202020202020202020202020202020486f6f6b2054797065732e20202020202020202020286c *696e6520203536290a2a20686f6f6b732f6d6f64653a2020202020202020202020202020202020 *2020202020202020202020486f6f6b2054797065732e20202020202020202020286c696e652020 *3534290a2a20686f6f6b732f6e69636b6e616d653a202020202020202020202020202020202020 *202020202020486f6f6b2054797065732e20202020202020202020286c696e6520203330290a2a *20686f6f6b732f6e6f746963653a20202020202020202020202020202020202020202020202020 *20486f6f6b2054797065732e20202020202020202020286c696e6520203538290a2a20686f6f6b *732f706172743a20202020202020202020202020202020202020202020202020202020486f6f6b *2054797065732e20202020202020202020286c696e6520203532290a2a20686f6f6b732f707562 *6c69633a2020202020202020202020202020202020202020202020202020486f6f6b2054797065 *732e20202020202020202020286c696e6520203630290a2a20686f6f6b732f7075626c69632d6e *6f746963653a20202020202020202020202020202020202020486f6f6b2054797065732e202020 *20202020202020286c696e6520203632290a2a20686f6f6b732f7261773a202020202020202020 *2020202020202020202020202020202020202020486f6f6b2054797065732e2020202020202020 *2020286c696e6520203634290a2a20686f6f6b732f73656e642f616374696f6e3a202020202020 *202020202020202020202020202020486f6f6b2054797065732e20202020202020202020286c69 *6e6520203736290a2a20686f6f6b732f73656e642f637463703a20202020202020202020202020 *20202020202020202020486f6f6b2054797065732e20202020202020202020286c696e65202037 *38290a2a20686f6f6b732f73656e642f6d6573736167653a202020202020202020202020202020 *2020202020486f6f6b2054797065732e20202020202020202020286c696e6520203734290a2a20 *686f6f6b732f73656e642f7075626c69633a202020202020202020202020202020202020202020 *486f6f6b2054797065732e20202020202020202020286c696e6520203732290a2a20686f6f6b73 *2f7369676e6f66663a20202020202020202020202020202020202020202020202020486f6f6b20 *54797065732e20202020202020202020286c696e6520203334290a2a20686f6f6b732f74696d65 *723a202020202020202020202020202020202020202020202020202020486f6f6b205479706573 *2e20202020202020202020286c696e6520203636290a2a20686f6f6b732f746f7069633a202020 *202020202020202020202020202020202020202020202020486f6f6b2054797065732e20202020 *202020202020286c696e6520203730290a0a1f0a46696c653a20626f626f742b2b2e696e666f2c *20204e6f64653a205661726961626c6520496e6465782c2020507265763a2046756e6374696f6e *20496e6465782c202055703a20546f700a0a5661726961626c6520496e6465780a2a2a2a2a2a2a *2a2a2a2a2a2a2a2a0a0a00085b696e64657800085d0a2a204d656e753a0a0a2a2025626f743a6c *6f6164706174683a202020202020202020202020202020202020202020202020204d6973632053 *6372697074696e672053747566662e0a2020202020202020202020202020202020202020202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *286c696e6520323034290a2a20657869742d686f6f6b3a20202020202020202020202020202020 *202020202020202020202020204d69736320536372697074696e672053747566662e0a20202020 *202020202020202020202020202020202020202020202020202020202020202020202020202020 *20202020202020202020202020202020202020286c696e6520202039290a2a20757365722d6672 *69656e643a202020202020202020202020202020202020202020202020202020536368656d6520 *55736572204c6576656c732e2020286c696e6520202036290a2a20757365722d6d61737465723a *202020202020202020202020202020202020202020202020202020536368656d65205573657220 *4c6576656c732e2020286c696e6520202036290a2a20757365722d6e6f6e653a20202020202020 *20202020202020202020202020202020202020202020536368656d652055736572204c6576656c *732e2020286c696e6520202036290a2a20757365722d747275737465643a202020202020202020 *2020202020202020202020202020202020536368656d652055736572204c6576656c732e202028 *6c696e6520202036290a2a20757365722d757365723a2020202020202020202020202020202020 *202020202020202020202020536368656d652055736572204c6576656c732e2020286c696e6520 *202036290a0a0a1f0a546167205461626c653a0a4e6f64653a20546f707f3532370a4e6f64653a *20496e74726f64756374696f6e7f313831360a4e6f64653a20436f6e66696775726174696f6e7f *323030380a4e6f64653a20436f6e66696775726174696f6e2046696c65737f323239350a4e6f64 *653a20626f742e636f6e667f323531300a4e6f64653a207365727665722073796e7461787f3339 *34380a4e6f64653a206368616e6e656c2073796e7461787f343831320a4e6f64653a20626f742e *75736572737f353635350a4e6f64653a20436f6e66696775726174696f6e2046696c6520506c61 *63656d656e747f363535380a4e6f64653a205573696e672074686520426f747f373236300a4e6f *64653a205374617274696e672074686520426f747f373531300a4e6f64653a2055736572204c65 *76656c737f383835330a4e6f64653a2050726f74656374696f6e7f31303330390a4e6f64653a20 *4175746f6d61746963204f707f31303931370a4e6f64653a204275696c742d496e20436f6d6d61 *6e64737f31313230360a4e6f64653a20536372697074696e677f31383138350a4e6f64653a2041 *6464696e67204e657720436f6d6d616e64737f31393135300a4e6f64653a20486f6f6b737f3230 *3437330a4e6f64653a204372656174696e67206120486f6f6b7f32313435320a4e6f64653a2048 *6f6f6b2054797065737f32323633350a4e6f64653a20536368656d652055736572204c6576656c *737f32353437380a4e6f64653a2053656e64696e67204d657373616765737f32363631320a4e6f *64653a2048696768204c6576656c204d6573736167652046756e6374696f6e737f32373232380a *4e6f64653a204c6f77204c6576656c204d6573736167652046756e6374696f6e737f3237383531 *0a4e6f64653a204d69736320536372697074696e672053747566667f32383631390a4e6f64653a *20436f6e6365707420496e6465787f33353139350a4e6f64653a2046756e6374696f6e20496e64 *65787f33353431340a4e6f64653a205661726961626c6520496e6465787f34353235380a1f0a45 *6e6420546167205461626c650a hunk ./bobot++.texinfo 254 +@quotation +[ I kinda think this should go before the detailed description of the +config file. I was didn't see it at first and was very frustrated +trying to find out @emph{where} to edit all this wonderful stuff. ] +@end quotation + hunk ./bobot++.texinfo 286 - hunk ./bobot++.texinfo 287 - hunk ./bobot++.texinfo 288 - hunk ./bobot++.texinfo 289 - -@item @code{[--config-file file][-f]} - Use file instead of -@file{bot.conf} - -@item @code{[--config-dir dir][-d]} - Use dir as dir to load config -file from - +@item @code{[--config-file file][-f]} - Use file instead of @file{bot.conf} +@item @code{[--config-dir dir][-d]} - Use dir as dir to load config file from hunk ./bobot++.texinfo 294 - hunk ./bobot++.texinfo 297 - hunk ./bobot++.texinfo 300 - hunk ./bobot++.texinfo 302 - hunk ./bobot++.texinfo 354 - hunk ./bobot++.texinfo 355 - hunk ./bobot++.texinfo 356 - hunk ./bobot++.texinfo 358 - hunk ./bobot++.texinfo 360 - hunk ./bobot++.texinfo 373 -scripting support. The reference leaves off the command char; -remember to use whatever you defined the command char to be in +scripting support. The reference leaves off the command char; remember +to use whatever you defined the command char to be in hunk ./bobot++.texinfo 379 -@multitable @columnfractions 0.25 0.25 0.25 0.25 +@multitable @columnfractions 0.20 0.15 0.15 0.50 hunk ./bobot++.texinfo 386 -@item @command{adduser} +@item @command{adduser} @tab @tab @tab hunk ./bobot++.texinfo 388 -@item @command{addserver} +@item @command{addserver} @tab @tab @tab Adds the server specified by +@var{host name} or @var{ip address} to the server list. hunk ./bobot++.texinfo 391 -@item @command{addshit} +@item @command{addshit} @tab @tab @tab hunk ./bobot++.texinfo 393 -@item @command{alias} +@item @command{alias} @tab @tab @tab Makes an alias, and adds the +function @var{new name}, that will do exactly the same command as +@var{old name}. hunk ./bobot++.texinfo 397 -@item @command{ban} +@item @command{ban} @tab @tab @tab Bans @var{mask} or @var{nick} from +@var{channel}. You need to be a trusted user to ban with a +@var{mask}. hunk ./bobot++.texinfo 401 -@item @command{banlist} +@item @command{banlist} @tab @tab @tab hunk ./bobot++.texinfo 403 -@item @command{channels} +@item @command{channels} @tab @tab @tab Prints the channel(s) where +the bot is currently. hunk ./bobot++.texinfo 406 -@item @command{cycle} +@item @command{cycle} @tab Yes @tab @tab Makes the bot leave and join +@var{channel}. hunk ./bobot++.texinfo 409 -@item @command{dcclist} +@item @command{dcclist} @tab @tab @tab Gives the list of all DCC Chat +connections. hunk ./bobot++.texinfo 412 -@item @command{deban} +@item @command{deban} @tab Yes @tab @tab Debans @var{mask} or +@var{nick} from @var{channel}. You need to be a trusted user to deban +with a @var{mask}. hunk ./bobot++.texinfo 416 -@item @command{delserver} +@item @command{delserver} @tab @tab @tab Deletes server from server +list whose number in the server list is @var{server number}. hunk ./bobot++.texinfo 419 -@item @command{deluser} +@item @command{deluser} @tab @tab @tab Removes @var{nick} or +@var{mask} from the userlist. hunk ./bobot++.texinfo 422 -@item @command{delshit} +@item @command{delshit} @tab @tab @tab Removes @var{nick} or +@var{mask} from the shitlist. hunk ./bobot++.texinfo 425 -@item @command{deop} +@item @command{deop} @tab Yes @tab @tab Deops @var{mask} or @var{nick} +on @var{channel}. hunk ./bobot++.texinfo 428 -@item @command{die} +@item @command{die} @tab @tab @tab Makes the bot stop immediately. hunk ./bobot++.texinfo 430 -@item @command{do} +@item @command{do} @tab @tab @tab hunk ./bobot++.texinfo 432 -@item @command{execute} @tab @tab @tab @strong{Only available if scripting -support is enabled} +@item @command{execute} @tab @tab @tab @strong{Only available if +scripting support is enabled} hunk ./bobot++.texinfo 435 -@item @command{help} +@item @command{help} @tab @tab @tab hunk ./bobot++.texinfo 437 -@item @command{ident} +@item @command{ident} @tab @tab @tab Identifies you on the bot. Note +that you should not use this command in public @dots{} hunk ./bobot++.texinfo 440 -@item @command{invite} +@item @command{invite} @tab Yes @tab @tab Invites @var{nick} on +@var{channel}. hunk ./bobot++.texinfo 443 -@item @command{join} +@item @command{join} @tab @tab @tab Makes the bot join @var{channel}. hunk ./bobot++.texinfo 445 -@item @command{keep} +@item @command{keep} @tab Yes @tab @tab Sets the @var{modes} that the +bot will keep for @var{channel}. hunk ./bobot++.texinfo 448 -@item @command{kick} +@item @command{kick} @tab Yes @tab @tab Kicks @var{mask} or @var{nick} +out of @var{channel}, because of @var{reason}. You need to be a +trusted user to use a @var{mask}. hunk ./bobot++.texinfo 452 -@item @command{kickban} +@item @command{kickban} @tab Yes @tab @tab Bans then kicks @var{mask} +or @var{nick} out of @var{channel}, because of @var{reason}. You need +to be a trusted user to use a @var{mask}. hunk ./bobot++.texinfo 456 -@item @command{load} +@item @command{load} @tab @tab @tab Reloads the userlist from disk. hunk ./bobot++.texinfo 458 -@item @command{loadscript} @tab @tab @tab @strong{Only available if scripting -support is enabled} +@item @command{loadscript} @tab @tab @tab @strong{Only available if +scripting support is enabled} hunk ./bobot++.texinfo 461 -@item @command{lock} +@item @command{lock} @tab @tab @tab Locks topic on @var{channel}. hunk ./bobot++.texinfo 463 -@item @command{mode} +@item @command{mode} @tab Yes @tab @tab Sends @var{mode string} as +mode for @var{channel}. hunk ./bobot++.texinfo 466 -@item @command{msg} +@item @command{msg} @tab @tab @tab hunk ./bobot++.texinfo 468 -@item @command{names} +@item @command{names} @tab Yes @tab @tab Shows the nicknames and +status of users on @var{channel}. hunk ./bobot++.texinfo 471 -@item @command{nextserver} +@item @command{nextserver} @tab @tab @tab Makes the bot connect to the +next server in its server list. hunk ./bobot++.texinfo 474 -@item @command{nick} +@item @command{nick} @tab @tab @tab Makes the bot use nickname @var{nick}. hunk ./bobot++.texinfo 476 -@item @command{nslookup} +@item @command{nslookup} @tab @tab @tab Does a nameserver query about +@var{nick} host, @var{host} or @var{ip address}. hunk ./bobot++.texinfo 479 -@item @command{op} +@item @command{op} @tab Yes @tab @tab Ops @var{nick} on @var{channel}. hunk ./bobot++.texinfo 481 -@item @command{part} +@item @command{part} @tab Yes @tab @tab Makes the bot leave @var{channel}. hunk ./bobot++.texinfo 483 -@item @command{password} +@item @command{password} @tab @tab @tab Changes your password on the +bot. Use @code{NONE} as password if you want to clear it. Do not use this +command in public! hunk ./bobot++.texinfo 487 -@item @command{reconnect} +@item @command{reconnect} @tab @tab @tab Makes the bot reconnect to +its current server. hunk ./bobot++.texinfo 490 -@item @command{rspymessage} +@item @command{rspymessage} @tab @tab @tab Removes you from the spy +list. hunk ./bobot++.texinfo 493 -@item @command{save} +@item @command{save} @tab @tab @tab Saves the userlist. hunk ./bobot++.texinfo 495 -@item @command{say} +@item @command{say} @tab Yes @tab @tab Makes the bot say @var{message} +on @var{channel}. hunk ./bobot++.texinfo 498 -@item @command{server} +@item @command{server} @tab @tab @tab Select the server to connect +to. @var{server number} is the number of the server in the serverlist. hunk ./bobot++.texinfo 501 -@item @command{serverlist} +@item @command{serverlist} @tab @tab @tab Shows the bot's serverlist. hunk ./bobot++.texinfo 503 -@item @command{setfloodrate} +@item @command{setfloodrate} @tab @tab @tab hunk ./bobot++.texinfo 505 -@item @command{setversion} +@item @command{setversion} @tab @tab @tab hunk ./bobot++.texinfo 507 -@item @command{shitlist} +@item @command{shitlist} @tab @tab @tab Shows the bot's shitlist. hunk ./bobot++.texinfo 509 -@item @command{spylist} +@item @command{spylist} @tab @tab @tab Shows the bot's spylist. hunk ./bobot++.texinfo 511 -@item @command{spymessage} +@item @command{spymessage} @tab @tab @tab Adds you to the spylist hunk ./bobot++.texinfo 513 -@item @command{stats} +@item @command{stats} @tab Yes @tab @tab Gives @var{channel}'s statistics. hunk ./bobot++.texinfo 515 -@item @command{tban} +@item @command{tban} @tab Yes @tab @tab Bans @var{nick} or @var{mask} +from @var{channel} for @var{time} seconds. hunk ./bobot++.texinfo 518 -@item @command{tkban} +@item @command{tkban} @tab Yes @tab @tab Bans @var{nick} or @var{mask} +from @var{channel} for @var{time} seconds, then kicks him/them because +of @var{reason}. hunk ./bobot++.texinfo 522 -@item @command{topic} +@item @command{topic} @tab Yes @tab @tab If no @var{topic}is given, +prints @var{channel}'s topic. Otherwise, the bot will change +@var{channel}'s topic to @var{topic}. hunk ./bobot++.texinfo 526 -@item @command{unlock} +@item @command{unlock} @tab Yes @tab @tab Makes the bot unlock topic +on @var{channel} hunk ./bobot++.texinfo 529 -@item @command{userlist} +@item @command{userlist} @tab @tab @tab Shows the bot's userlist hunk ./bobot++.texinfo 531 -@item @command{who} +@item @command{who} @tab Yes @tab @tab Show your level on @var{channel} hunk ./bobot++.texinfo 533 -@item @command{whois} +@item @command{whois} @tab Yes @tab @tab Shows information about +@var{nick} on @var{channel} hunk ./bobot++.texinfo 567 -@findex addcommand -Adding a new command is simple. To register a new command use -@code{bot:addcommand}. The prototype for @code{bot:addcommand} is -@code{(bot:addcommand name func needs-channel? num-of-args -min-level)}. The @code{name} is a string representing the name of the -command being added. @code{func} is a function accepting -@code{num-of-args} arguments. @code{needs-channel?} is a bool that is -true if the function needs the channel name as its first arg, and -false otherwise. @code{num-of-args} is the number of args @code{func} -will take and must be within zero (0) and twenty -(20). @code{min-level} is one of the @ref{Scheme User Levels}. A user must be -at least a @code{min-level} user to use the new command. None of the -arguments are guaranteed to be passed; if they aren't they are set to -the empty string @code{""}. An example of a new command would be: +Adding a new command is simple. To register a new command use @code{bot:addcommand}. + +@defun bot:addcommand name func needs-channel? num-of-args min-level + +The @var{name} is a string representing the name of the command being +added. @var{func} is a function accepting @var{num-of-args} +arguments. @var{needs-channel?} is a bool that is true if the function +needs the channel name as its first arg, and false otherwise. +@var{num-of-args} is the number of args @var{func} will take and must +be within zero (0) and twenty (20). @var{min-level} is one of the +@ref{Scheme User Levels}. A user must be at least a @code{min-level} +user to use the new command. None of the arguments are guaranteed to +be passed; if they aren't they are set to the empty string @code{""}. +An example of a new command would be: hunk ./bobot++.texinfo 592 -``Hello World @code{USER}'' if called as @kbd{!hello @var{USER}}. +``Hello World @code{USER}'' if called as @kbd{!hello @var{USER}}. +@end defun hunk ./bobot++.texinfo 621 -@findex addhook -To add a new hook you use the function -@code{bot:addhook}. @code{bot:addhook} is prototyped as -@code{(bot:addhook type regex function pri fall name)}. @code{type} -specifies the type of hook (the types of hooks are listed in @ref{Hook -Types}). @code{regex} is a standard regular expression. If -@code{regex} is matched, @code{function} will be -called. @code{function} will take a different number of args depending -on the hook type. @code{pri} specifies the priority of the -hook---higher priority hooks are executed first. This argument is -optional and defaults to @code{0}. @code{fall} is @code{#t} if the -hook is a fallthrough hook and @code{#f} is the hook is not a -fallthrough hook. This arg is also optional and default to -@code{#t}. @code{name} is the optional name of the hook that defaults -to ``DEFAULT''. If you set the name then you can have more than one -hook that matches the same regexp, as long as they have the same -name. E.g. in a log script you could have the regexps for the log -function all be @code{".*"} and set their names to @code{"log"} to -avoid a conflict with other hooks. +To add a new hook you use the function @code{bot:addhook}. + +@defun bot:addhook type regex function [pri fall name] +@var{type} specifies the type of hook (the types of hooks are listed +in @ref{Hook Types}). @var{regex} is a standard regular expression. If +@var{regex} is matched, @var{function} will be called. @var{function} +will take a different number of args depending on the hook +type. @var{pri} specifies the priority of the hook---higher priority +hooks are executed first. This argument is optional and defaults to +@code{0}. @var{fall} is @code{#t} if the hook is a fallthrough hook +and @code{#f} is the hook is not a fallthrough hook. This arg is also +optional and default to @code{#t}. @var{name} is the optional name of +the hook that defaults to ``DEFAULT''. If you set the name then you +can have more than one hook that matches the same regexp, as long as +they have the same name. E.g. in a log script you could have the +regexps for the log function all be @code{".*"} and set their names to +@code{"log"} to avoid a conflict with other hooks. +@end defun hunk ./bobot++.texinfo 643 -Here is a list of the various hooks are notes on each one. The general -format of a hook is: +Here is a list of the various hooks funtions and notes on each +one. The general format of each hook description is as if it was was +function to be defined, but these describe the function to be passwd +to @code{bot:add-hook}. Do @emph{not} name your functions these +names. hunk ./bobot++.texinfo 649 -@itemize @bullet -@item -@code{hooks/name} (this is the Scheme variable name of the hook) -@itemize @minus -@item -Description of the hook -@item -@var{arg1} @var{arg2} ... @var{argn} -@itemize @minus -@item -@var{arg1}: desc -@item -@var{arg2}: desc -@item -... -@item -@var{argN}: desc -@end itemize -@end itemize -@end itemize +@quotation +[ Boy, that's clumsy. I want to say that the hook/xx functions that +are documented below are not funtions that you call. They are the +functions that needs to be passed to bot:addhook for that kind of +hook. hunk ./bobot++.texinfo 655 -That said, here is the list of available hooks: -FIXME: write docs +Still clumsy. Oh well. ] +@end quotation hunk ./bobot++.texinfo 658 -@itemize @bullet hunk ./bobot++.texinfo 659 -@item -@vindex hooks/action -@code{hooks/action} -@itemize @minus -@item -This hook is triggered when someone performs an action. -@item -@var{from}, @var{to}, @var{action} -@itemize @minus -@item -@var{from}: this is the address of the person that performed the -action in the form @samp{@var{nick} ! @var{user} @@ @var{host}} -(without the spaces). -@item -@var{to}: This is the target of the action, which is either a channel -or the Bot's nick. -@item -@var{action}: This is the text of the action. E.g. if someone did -@samp{* foobar does baz}, then @var{action} would be the string +That said, here is the list of available hooks functions. +FIXME: write docs + +@defun hooks/action from to action +This hook is triggered when someone performs an action. @var{from} is +the address of the person that performed the action in the form +@samp{@var{nick} ! @var{user} @@ @var{host}} (without the spaces). +@var{to} is the target of the action, which is either a channel or the +Bot's nick. @var{action} is the text of the action. E.g. if someone +did @samp{* foobar does baz}, then @var{action} would be the string hunk ./bobot++.texinfo 670 -@end itemize -@end itemize +@end defun hunk ./bobot++.texinfo 672 -@item -@vindex hooks/nickname -@code{hooks/nickname} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize hunk ./bobot++.texinfo 673 -@item -@vindex hooks/signoff -@code{hooks/signoff} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/nickname old-nick new-nick +This hook gets called when someone changes thir nickname from +@var{old-nick} to @var{new-nick}. +@end defun hunk ./bobot++.texinfo 678 -@item -@vindex hooks/ctcp -@code{hooks/ctcp} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/signoff nick rest +@end defun hunk ./bobot++.texinfo 681 -@item -@vindex hooks/ctcp-reply -@code{hooks/ctcp-reply} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/ctcp nick to command rest +@end defun hunk ./bobot++.texinfo 684 -@item -@vindex hooks/disconnect -@code{hooks/disconnect} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/ctcp-reply nick command rest +@end defun hunk ./bobot++.texinfo 687 -@item -@vindex hooks/flood -@code{hooks/flood} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/disconnect ? +[ Is this ever called? I can't find it in the source ] +@end defun hunk ./bobot++.texinfo 691 -@item -@vindex hooks/invite -@code{hooks/invite} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/flood nick +@end defun hunk ./bobot++.texinfo 694 -@item -@vindex hooks/join -@code{hooks/join} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/invite nick channel +@end defun hunk ./bobot++.texinfo 697 -@item -@vindex hooks/kick -@code{hooks/kick} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/join nick channel +@end defun hunk ./bobot++.texinfo 700 -@item -@vindex hooks/part -@code{hooks/part} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/kick target from channel reason +@end defun hunk ./bobot++.texinfo 703 -@item -@vindex hooks/mode -@code{hooks/mode} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/leave nick channel +@defunx hooks/part nick channel +@end defun hunk ./bobot++.texinfo 707 -@item -@vindex hooks/message -@code{hooks/message} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/mode nick channel modes +@end defun hunk ./bobot++.texinfo 710 -@item -@vindex hooks/notice -@code{hooks/notice} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/message from message +@end defun hunk ./bobot++.texinfo 713 -@item -@vindex hooks/public -@code{hooks/public} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/notice nick message +@end defun hunk ./bobot++.texinfo 716 -@item -@vindex hooks/public-notice -@code{hooks/public-notice} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/public from to message +@end defun hunk ./bobot++.texinfo 719 -@item -@vindex hooks/raw -@code{hooks/raw} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/public-notice nick to message +@end defun hunk ./bobot++.texinfo 722 -@item -@vindex hooks/timer -@code{hooks/timer} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/raw raw-message +@end defun hunk ./bobot++.texinfo 725 -@item -@vindex hooks/topic -@code{hooks/topic} -@itemize @minus -@item -Description of the hook -@item -# of args -@itemize @minus -@item -@code{arg1}: desc -@end itemize -@end itemize +@defun hooks/timer time +This hook seems to be called once a minute. @var{time} is in +@code{hh:mm} format. +@end defun hunk ./bobot++.texinfo 730 -@item -@vindex hooks/dcc/begin -@code{hooks/dcc/begin} -@itemize @minus -@item -This hook is triggered when a user begins a DCC CHAT with the bot. -@item -@var{FROM} -@itemize @minus -@item -@var{FROM}: This is the user's address in the form -@samp{nick!user@@host}. -@end itemize -@end itemize +@defun hooks/topic nick channel new-topic +@end defun hunk ./bobot++.texinfo 733 -@item -@vindex hooks/dcc/message -@code{hooks/dcc/message} -@itemize @minus -@item -This hook is triggered when a user sends a message to the bot through -a DCC CHAT -@item -@var{FROM} @var{MESSAGE} -@itemize @minus -@item -@var{FROM}: This is the user's address in the form -@samp{nick!user@@host}. -@item -@var{MESSAGE}: This is the message the user sent to the bot. -@end itemize -@end itemize -@end itemize +@defun hooks/send/public mynick dest message +@end defun hunk ./bobot++.texinfo 736 +@defun hooks/send/message botnick message +@end defun + +@defun hooks/send/action mynick to message +@end defun + +@defun hooks/send/ctcp mynick to command message +@end defun + +@defun hooks/dcc/chat-begin from +This hook is triggered when a user begins a DCC CHAT with the bot. +@var{from} is the user's address in the form @samp{nick!user@@host}. +@end defun + +@defun hooks/dcc/chat-message from message +This hook is triggered when a user sends a message to the bot through +a DCC CHAT @var{from} is the user's address in the form +@samp{nick!user@@host}. @var{message} is the message the user sent to +the bot. +@end defun hunk ./bobot++.texinfo 787 -scripts. There is the simple, but rather limited, @code{bot:say}, -@code{bot:action} and @code{bot:msg}, and -the more powerful, but lower level, @code{bot:send-MESSAGE} -functions. Most bots will probably only need the higher level -functions, but for the sake of why-not Bobot++ lets you use the lower -level functions (in progress). +scripts. There is the simple, but rather limited, @code{bot:say}, +@code{bot:action} and @code{bot:msg}, and the more powerful, but lower +level, @code{bot:send-MESSAGE} functions. Most bots will probably only +need the higher level functions, but for the sake of why-not Bobot++ +lets you use the lower level functions (in progress). hunk ./bobot++.texinfo 801 -... +@defun bot:say channel message +Send a public or private @var{message} to @var{channel}. + +Sends a normal text message, as if a user had typed it in. The +@var{dest} can be a nickname or a channel. +@end defun + +@defun bot:action channel message +Send an ``action'' type @var{message} to @var{channel} +@end defun + +@defun bot:msg nick message +The same as if a user typed @code{/msg nick message} to their IRC client. +@end defun hunk ./bobot++.texinfo 819 +@c Add a url for rfc2812 hunk ./bobot++.texinfo 824 -@code{*unspecified*} always, so don't use the return value for anything. - -@itemize @bullet +@code{*unspecified*} always, so don't use the return value for +anything. hunk ./bobot++.texinfo 827 -@item @code{bot:send-CTCP to command message} +@defun bot:send-CTCP to command message hunk ./bobot++.texinfo 831 - -@end itemize +@end defun hunk ./bobot++.texinfo 845 +@quotation +[ I didn't know where to put any of these, so I jsut stuck them in +here. + +There probably needs to be several sections added, like dealing with +users (kicking, added, etc), dealing with the bot (channels, nickname +of the bot, etc), server issues (serverlist), useful tools (nslookup, +whois), and do on. ] +@end quotation + + +@defun bot:adduser nick-or-mask cbannel-mask level prot auto-op +Adds an user to the userlist, for a @code{nick!user@@host} matching the +one given, on a channel matching the @var{channelMask} given. + +@multitable @columnfractions 0.33 0.33 0.33 +@item The @var{level} can be: @tab The @var{prot} can be: @tab The @var{auto-op} can be: +@item 0 - No level @tab 0 - No protection @tab 0 - No auto-op +@item 1 - User @tab 1 - No ban @tab 1 - Op on join +@item 2 - Trusted User @tab 2 - No kick @tab +@item 3 - Friend @tab 3 - No deop @tab +@item 4 - Master @tab @tab +@end multitable + +@end defun + +@c (3, 4, 0) +@defun bot:addserver hostname ip-address [portnumber] +Adds the server specified by @var{hostname} or @var{ip-address} to +the server list. +@end defun + +@c (3, 2, 0) +@defun bot:addshit nick-or-mask channel-mask level [time reason] +Adds an user to the shitlist, for a nick!user@@host matching the +one given, on a channel matching the @var{channelMask} given. + +@display +The @var{level} can be: + 0 - No shit + 1 - No op + 2 - Kick and Ban on join + 3 - Kick and Ban on join, no deban +@end display + +@end defun + +@c (2, 0, 0) +@defun bot:ban channel mask-or-nick +Bans @var{mask} or @var{nick} from @var{channel}. You need to be a trusted +user to ban with a @var{mask}. +@end defun + +@c (2, 0, 0) +@defun bot:change-command-level nick-or-mask channel-mask new-level +Gives @var{nick} or @var{mask} level @var{new-level} on channel(s) +@var{channel-mask}. Note that you can not change level for someone +whose level is greater than yours, and that you can not give a +level greater than yours. +@end defun + +@c (1, 0, 0) +@defun bot:cycle channel +Makes the bot leave and join @var{channel}. +@end defun + +@c (2, 0, 0) +@defun bot:deban channel mask-or-nick +Debans @var{mask} or @var{nick} from @var{channel}. You need to be a trusted +user to deban with a @var{mask}. +@end defun + +@c (1, 0, 0) +@defun bot:delserver server-number +Deletes server from server list whose number in the server list +is @var{server-number} +@end defun + +@c (2, 0, 0) +@defun bot:deluser nick-or-mask channel-mask +Removes @var{nick} or @var{mask} from the userlist. +@end defun + +@c (2, 0, 0) +@defun bot:delshit nick-or-mask channel-mask +Removes @var{nick} or @var{mask} from the shitlist. +@end defun + +@c (2, 0, 0) +@defun bot:deop channel mask-or-nick +Deops @var{mask} or @var{nick} on @var{channel}. +@end defun + +@c (1, 0, 0) +@defun bot:die reason +Makes the bot stop immediately. +@end defun + +@c (1, 0, 0) +@defun bot:do ? +@end defun + +@c (2, 0, 0) +@defun bot:invite channel nick +Invites @var{nick} on @var{channel}. +@end defun + +@c (1, 1, 0) +@defun bot:join channel +Makes the bot join @var{channel}. +@end defun + +@c (2, 0, 0) +@defun bot:keep channel modes +Sets the @var{modes} that the bot will keep for @var{channel}. +See also STATS. +@end defun + +@c (2, 1, 0) +@defun bot:kick channel mask-or-nick [reason] +Kicks @var{mask} or @var{nick} out of @var{channel}, because of @var{reason}. +You need to be a trusted user to use a @var{mask}. +@end defun + +@c (2, 1, 0) +@defun bot:kickban channel mask-or-nick [reason] +Bans then kicks @var{mask} or @var{nick} out of @var{channel}, +because of @var{reason}. +You need to be a trusted user to use a @var{mask}. +@end defun + +@c (1, 0, 0) +@defun bot:lock channel +Locks topic on @var{channel}. +@end defun + +@c (0, 0, 0) +@defun bot:logport +[ Probably returns the log port? ] +@end defun + +@c (2, 0, 0) +@defun bot:mode channel mode-string +Sends @var{mode-string} as mode for @var{channel}. +@end defun + +@c (0, 0, 0) +@defun bot:nextserver +Makes the bot connect to the next server in its server list. +@end defun + +@c (1, 0, 0) +@defun bot:nick nick +Makes the bot use nickname @var{nick}. +@end defun + +@c (2, 0, 0) +@defun bot:op channel nick +Ops @var{nick} on @var{channel}. +@end defun + +@c (1, 0, 0) +@defun bot:part channel +Makes the bot leave @var{channel}. +@end defun + +@c (0, 0, 0) +@defun bot:reconnect +Makes the bot reconnect to its current server. +@end defun + +@c (1, 0, 0) +@defun bot:server server-number +Select the server to connect to. @var{server-number} is the number of +the server in the serverlist. +@end defun + +@c (1, 0, 0) +@defun bot:setfloodrate ? +@end defun + +@c (1, 0, 0) +@defun bot:setversion ? +@end defun + +@c (3, 0, 0) +@defun bot:tban channel nick-or-mask time +Bans @var{nick} or @var{mask} from @var{channel} for @var{time} seconds. +@end defun + +@c (3, 1, 0) +@defun bot:tkban channel nick-or-mask time [reason] +Bans @var{nick} or @var{mask} from @var{channel} for @var{time} seconds, +then kicks him/them because of @var{reason}. +@end defun + +@c (2, 0, 0) +@defun bot:topic channel topic +If no @var{topic} is given, prints @var{channel}'s topic. Otherwise, +the bot will change @var{channel}'s topic to @var{topic}. +@end defun + +@defun bot:unlock channel +Makes the bot unlock topic on @var{channel}. +@end defun + +@c (0, 0, 0) +@defun bot:getnickname +[ Gets the bot's nickname? ] +@end defun + +@c (0, 0, 0) +@defun bot:getserver +@end defun + +@c (0, 0, 0) +@defun bot:getserverlist +@end defun + +@c (0, 0, 0) +@defun bot:flush +[ Flushes the socket to the server? ] +@end defun + +@c (0, 0, 0) +@defun bot:flushport +[ Flushes the log port? ] +@end defun + +@c (1, 0, 0) +@defun bot:random ? +[ Returns a random number? What range? Why? ] +@end defun + +@c (1, 0, 0) +@defun bot:delcommand +[ Probably deletes a command added with @code{bot:addcommand} ? ] +@end defun + +@c (2, 0, 0) +@defun bot:addtimer ? ? +@end defun + +@c (1, 0, 0) +@defun bot:deltimer ? +@end defun + +@c (2, 0, 0) +@defun bot:dcc-chat-send ? ? +@end defun + +@quotation +[ And what about the stuff defined in @file{bobot-utils.scm} ? I just +added it here so it could be somewhere. There should also be a +section dealing with modules. How to use them. What module scripts +are in. What module bobot++ provided primites are in. And so on. ] +@end quotation + +@defun bot:log . messages +Write as many @var{messages} as you want to the log. If the arg is a +thunk it will be executed and it's output will be written to the log. +@end defun + +@defun bot:load file +@end defun + +@defun bot:load-module module-spec +@end defun + +@defun bot:use-module module-spec +@end defun + +@defun bot:match-not-channel regex +match-not-channel adds a prefix regex to your @var{regex} so it +doesn't match the sender or channel in a PUBLIC message +@end defun + +@defun bot:match-to-me regex +match-to-me matches text that was addressed to the bot with a +':', ',', or nothing after the bot name. +@end defun + +@defun bot:sent-to-me? message +@end defun + +@defun bot:ctcp-quote message +Returns the CTCP quoted message +Input @emph{MUST NOT} contain the trailing @code{\r\n} +(it is added by the message sending code). +@end defun + + +@defvar %bot:loadpath +@end defvar + +@defun %bot:load-extensions +@end defun + + + hunk ./scripts/eval 1 -; -*- guile-scheme -*- +; -*- scheme -*- hunk ./source/Interp.C 35 + hunk ./source/Interp.C 214 + hunk ./source/Parser.C 875 + // FIXME: from->getAddress should + // be nick. MAYBE, depending on + // whether this could be + // considered a bug or a feature + // change to normalize + // hooks/action with the other + // hooks. Maybe a 3.0 change? }