From 3fffc502a4e174d352cd8b9690f77eff3ca3a950 Mon Sep 17 00:00:00 2001
From: Evennia docbuilder action
aliases = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}¶
aliases = ['pemit', 'remit']¶aliases = ['remit', 'pemit']¶
search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' pemit remit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}¶search_index_entry = {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' remit pemit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}¶
aliases = ['batchcmd', 'batchcommand']¶aliases = ['batchcommand', 'batchcmd']¶
search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}¶search_index_entry = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}¶
aliases = ['@swap', '@parent', '@typeclasses', '@update', '@type']¶aliases = ['@update', '@parent', '@typeclasses', '@swap', '@type']¶
search_index_entry = {'aliases': '@swap @parent @typeclasses @update @type', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass swap parent typeclasses update type', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶search_index_entry = {'aliases': '@update @parent @typeclasses @swap @type', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass update parent typeclasses swap type', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶
aliases = ['@search', '@locate']¶aliases = ['@locate', '@search']¶
search_index_entry = {'aliases': '@search @locate', 'category': 'building', 'key': '@find', 'no_prefix': 'find search locate', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}¶search_index_entry = {'aliases': '@locate @search', 'category': 'building', 'key': '@find', 'no_prefix': 'find locate search', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}¶
aliases = ['@chan', '@channels']¶aliases = ['@channels', '@chan']¶
search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
aliases = ['@chan', '@channels']¶aliases = ['@channels', '@chan']¶
search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
aliases = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶
aliases = [':', 'emote']¶aliases = ['emote', ':']¶
search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'no_prefix': ' : emote', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'no_prefix': ' emote :', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
Test the batch processor.
red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmps3yctdb1/61aca112ae0ee9cf95c2e530683110270c8676ee/evennia/contrib/tutorials/red_button/red_button.py'>¶
aliases = ['con', 'co', 'conn']¶aliases = ['conn', 'con', 'co']¶
search_index_entry = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶
aliases = ['qu', 'q']¶aliases = ['q', 'qu']¶
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶
aliases = ['look', 'l']¶aliases = ['l', 'look']¶
search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶
aliases = ['h', '?']¶aliases = ['?', 'h']¶
search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶
evennia.contrib.base_systems.components.tests.InheritedTCWithComponents(id, db_key, db_typeclass_path, db_date_created, db_lock_storage, db_account, db_sessid, db_location, db_home, db_destination, db_cmdset_storage)[source]¶Bases: evennia.contrib.base_systems.components.tests.CharacterWithComponents
test_c¶This allows you to register a component on a typeclass. +Components registered with this property are automatically added +to any instance of this typeclass.
+Defaults can be overridden for this typeclass by passing kwargs
+DoesNotExist¶Bases: evennia.contrib.base_systems.components.tests.CharacterWithComponents.DoesNotExist
MultipleObjectsReturned¶Bases: evennia.contrib.base_systems.components.tests.CharacterWithComponents.MultipleObjectsReturned
path = 'evennia.contrib.base_systems.components.tests.InheritedTCWithComponents'¶typename = 'InheritedTCWithComponents'¶evennia.contrib.base_systems.components.tests.TestComponents(methodName='runTest')[source]¶test_character_has_class_components()[source]¶
test_inherited_typeclass_does_not_include_child_class_components()[source]¶test_character_instances_components_properly()[source]¶aliases = ['con', 'co', 'conn']¶aliases = ['conn', 'con', 'co']¶
search_index_entry = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}¶search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}¶
aliases = ['qu', 'q']¶aliases = ['q', 'qu']¶
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶
aliases = ['look', 'l']¶aliases = ['l', 'look']¶
search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶
aliases = ['h', '?']¶aliases = ['?', 'h']¶
search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶
aliases = ['@callbacks', '@callback', '@calls']¶aliases = ['@callback', '@callbacks', '@calls']¶
search_index_entry = {'aliases': '@callbacks @callback @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callbacks callback calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶search_index_entry = {'aliases': '@callback @callbacks @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback callbacks calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶
aliases = ['abort', 'quit', 'chicken out', 'q']¶aliases = ['q', 'abort', 'quit', 'chicken out']¶
search_index_entry = {'aliases': 'abort quit chicken out q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort quit chicken out q', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}¶search_index_entry = {'aliases': 'q abort quit chicken out', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' q abort quit chicken out', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}¶
aliases = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}¶
aliases = ['whisper', 'shout', ';']¶aliases = ['shout', ';', 'whisper']¶
search_index_entry = {'aliases': 'whisper shout ;', 'category': 'general', 'key': 'say', 'no_prefix': ' whisper shout ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶search_index_entry = {'aliases': 'shout ; whisper', 'category': 'general', 'key': 'say', 'no_prefix': ' shout ; whisper', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶
aliases = [':', 'pose']¶aliases = ['pose', ':']¶
search_index_entry = {'aliases': ': pose', 'category': 'general', 'key': 'emote', 'no_prefix': ' : pose', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}¶search_index_entry = {'aliases': 'pose :', 'category': 'general', 'key': 'emote', 'no_prefix': ' pose :', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}¶
aliases = ['examine', 'ex', 'unfocus', 'e']¶aliases = ['examine', 'ex', 'e', 'unfocus']¶
search_index_entry = {'aliases': 'examine ex unfocus e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' examine ex unfocus e', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}¶search_index_entry = {'aliases': 'examine ex e unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' examine ex e unfocus', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}¶
aliases = ['inventory', 'inv', 'give', 'i']¶aliases = ['inv', 'give', 'i', 'inventory']¶
search_index_entry = {'aliases': 'inventory inv give i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inventory inv give i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶search_index_entry = {'aliases': 'inv give i inventory', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv give i inventory', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶
aliases = ['@dig', '@open']¶aliases = ['@open', '@dig']¶
search_index_entry = {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶search_index_entry = {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'no_prefix': ' open dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶
aliases = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}¶
aliases = ['dive', 'fly']¶aliases = ['fly', 'dive']¶
search_index_entry = {'aliases': 'dive fly', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' dive fly', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}¶search_index_entry = {'aliases': 'fly dive', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' fly dive', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}¶
aliases = ['press button', 'push', 'press']¶
search_index_entry = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button push press', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}¶
aliases = ['break lid', 'smash lid', 'smash']¶
search_index_entry = {'aliases': 'break lid smash lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash lid smash', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}¶
aliases = ['press button', 'push', 'press']¶
search_index_entry = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button push press', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}¶
aliases = ['l', 'examine', 'ex', 'listen', 'feel', 'get']¶
search_index_entry = {'aliases': 'l examine ex listen feel get', 'category': 'general', 'key': 'look', 'no_prefix': ' l examine ex listen feel get', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}¶
aliases = ['light', 'burn']¶aliases = ['burn', 'light']¶
search_index_entry = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' light burn', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}¶search_index_entry = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' burn light', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}¶
aliases = ['move', 'shiftroot', 'pull', 'push']¶aliases = ['shiftroot', 'pull', 'push', 'move']¶
search_index_entry = {'aliases': 'move shiftroot pull push', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move shiftroot pull push', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}¶search_index_entry = {'aliases': 'shiftroot pull push move', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' shiftroot pull push move', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}¶
aliases = ['button', 'push button', 'press button']¶aliases = ['button', 'press button', 'push button']¶
search_index_entry = {'aliases': 'button push button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button push button press button', 'tags': '', 'text': '\n Presses a button.\n '}¶search_index_entry = {'aliases': 'button press button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button press button push button', 'tags': '', 'text': '\n Presses a button.\n '}¶
aliases = ['bash', 'stab', 'defend', 'parry', 'kill', 'fight', 'slash', 'chop', 'hit', 'thrust', 'pierce']¶aliases = ['fight', 'stab', 'chop', 'slash', 'defend', 'thrust', 'hit', 'bash', 'pierce', 'kill', 'parry']¶
search_index_entry = {'aliases': 'bash stab defend parry kill fight slash chop hit thrust pierce', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' bash stab defend parry kill fight slash chop hit thrust pierce', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}¶search_index_entry = {'aliases': 'fight stab chop slash defend thrust hit bash pierce kill parry', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' fight stab chop slash defend thrust hit bash pierce kill parry', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}¶
aliases = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}¶
aliases = ['h', '?']¶aliases = ['?', 'h']¶
search_index_entry = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}¶search_index_entry = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}¶
aliases = ['fiddle', 'feel around', 'feel', 'l', 'search']¶aliases = ['l', 'feel around', 'feel', 'fiddle', 'search']¶
search_index_entry = {'aliases': 'fiddle feel around feel l search', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' fiddle feel around feel l search', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}¶search_index_entry = {'aliases': 'l feel around feel fiddle search', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l feel around feel fiddle search', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}¶
directory = '/tmp/tmpkko3ybwl/6f3cd5584cd860d2f317448e7bbc7911ce03aec3/evennia'¶directory = '/tmp/tmps3yctdb1/61aca112ae0ee9cf95c2e530683110270c8676ee/evennia'¶
directory = '/tmp/tmpkko3ybwl/6f3cd5584cd860d2f317448e7bbc7911ce03aec3/evennia/game_template'¶directory = '/tmp/tmps3yctdb1/61aca112ae0ee9cf95c2e530683110270c8676ee/evennia/game_template'¶
aliases = [':fd', ':q!', ':echo', ':DD', ':>', ':S', ':p', ':=', ':wq', ':s', ':dd', ':uu', ':fi', ':f', ':u', '::', ':!', ':h', ':UU', ':dw', ':::', ':w', ':r', ':x', ':j', ':<', ':I', ':q', ':', ':A', ':y', ':i']¶aliases = [':q!', ':p', ':i', ':fd', ':u', ':DD', ':A', ':h', ':!', ':>', ':dd', ':S', '::', ':UU', ':echo', ':dw', ':s', ':fi', ':wq', ':q', ':x', ':w', ':f', ':y', ':r', ':<', ':::', ':uu', ':j', ':=', ':I', ':']¶
search_index_entry = {'aliases': ':fd :q! :echo :DD :> :S :p := :wq :s :dd :uu :fi :f :u :: :! :h :UU :dw ::: :w :r :x :j :< :I :q : :A :y :i', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :fd :q! :echo :DD :> :S :p := :wq :s :dd :uu :fi :f :u :: :! :h :UU :dw ::: :w :r :x :j :< :I :q : :A :y :i', 'tags': '', 'text': '\n Commands for the editor\n '}¶search_index_entry = {'aliases': ':q! :p :i :fd :u :DD :A :h :! :> :dd :S :: :UU :echo :dw :s :fi :wq :q :x :w :f :y :r :< ::: :uu :j := :I :', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :q! :p :i :fd :u :DD :A :h :! :> :dd :S :: :UU :echo :dw :s :fi :wq :q :x :w :f :y :r :< ::: :uu :j := :I :', 'tags': '', 'text': '\n Commands for the editor\n '}¶
aliases = ['abort', 'y', 'a', 'no', 'n', 'yes', '__nomatch_command']¶
search_index_entry = {'aliases': 'abort y a no n yes __nomatch_command', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort y a no n yes __nomatch_command', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}¶
aliases = ['end', 'next', 'quit', 't', 'top', 'abort', 'previous', 'p', 'q', 'a', 'n', 'e']¶aliases = ['abort', 'quit', 't', 'top', 'a', 'next', 'previous', 'n', 'p', 'end', 'e', 'q']¶
search_index_entry = {'aliases': 'end next quit t top abort previous p q a n e', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' end next quit t top abort previous p q a n e', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶search_index_entry = {'aliases': 'abort quit t top a next previous n p end e q', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort quit t top a next previous n p end e q', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶
TqETlo0`R0~_UBhD7kbf3~G3kZzS91yDOL`h~n`2ZB-@o|WZ_sxVt z4L%59-5qXa71Ua2CrpcH&J7u&G8xdis07vS7EbfX&LINbpl&RPbH?Wjj=6?&B!Rwb z!ha% II)3)2w@{zYuy}#ULi0$t}x(Aa>Nb#263i z<-Vd9@l%uxs|J{2`Rbnu%R$b330~q2Qo%k9Bo~Ou)PIDqLr%jatj!q?$K?@3f#q0! zRx<*RJ^;DKg1~T#MysAo2V2b>+-4KEm }WNb+u*XEJ4>=SiGsVKA^Uv#88Ai# z@nlU|2OFw*KD-$eg)%&WwjFg5SPL5hSrlby(+v{{K>_Xm Q4Zr`BN@4vITLBX>43s!@pJ$jMb&(=nqGXx~ZXEAtWr*oCOdXC=VkB*O%c zWBXoA^oUj<5adBp$YHmOFm_hf!9tT|`uyTRxo&X|nIySpdc0y@>HJ_Kqw^o+DkG@! zRY{p^{D>?R2OApXwUMo)fvWVpY_m-Ja2=z)G-Z41uo%!HgxY1n+JkcE)ZbxY%gH_} zm(*$xZ)o}(0{09Y4N^Q$4+df*E3-?M4wRhOA;d~5?MGqFU@t`6-1kR3c*I93Okn29 z31KCMGQZwl6g}8Bs9$ki@G1%MtwwSA#T0aL|K6zEzRmiWxOZLm8)%y7&j*k83A;Z) zqPBRoR#{8y=hh4a0S>EXk5*7^bdGtxs~;9Ir8Wp=uEo)_gj98tJ1K6(o}B*LPGo_O zDe~DiWICZfK^8_wTZ>i|e1AZ`-SAhQnl?^{N9#E#5W#lby8={7;lYxm)O+_R{@T-Ry-Mq3 zZJVrhsCD&lfMO{i-Qr 6$KwWKGAK!k#M=`Af+=P#!rlcd9s ba@Ha}-7+vbMa$%8j;9p5L*`>V6F%1O!= zth5X4HqJleq47mEYzf7?INjwZ*9|^4oYk0L=XZlpa}7RZ3YEoz!+c*Z?3+11x?42Q z3T%Z8b-VN(ETU?SbnrNT6!1xVkb08V(!ybuTCEXlkxmoLyr=N052XJ()g2GuB)Ks& zbXaE#C8{j33DJSlhWbA3NsL{A1}kS<%HPm0P#|iCoNj-AbpbLoQ!%m7D|Gyf&~33R zg$>9FJ7B-ZGWQXmCR9Z$l#90AICsTWB#nFy2w1%5AFf8VWO;P#Umc$pRH}H0``GGy z8~)c-$(akT?Lv%&hn!7hzZlPjghw leX?q6KAA+b=7a#9S_!-e~jh z;f%{^9QUsOz#6&_BZV0y^YMm3n=Q=K0ig$60o5?~zsn9%8yJ?FHycT52%78X;?u=N znat4s#)d`C&_DtFHDH(Moyt<**o`e &`DaV?eD?FOSt%|+JxQ=2%L)}U&ER%NnF_RA^A0XyKu%xuJDAi fedt5hm9iHR`=kf8TI*C)le{%nl)*NPz|JFjoo6@GkQnsd5=XkKAM*NKy zhctY!X0Ti*{40WV>IE}7sT%ko0zD~tgDFVQ67yB#48^3yrqGJ)KJx1;>^N)bKQUI1 zimMqw&x+<^#0XBs8V*o}SMRpKe(a8ARHwa;mk_~jXU&<8t9ncYM0ypWDo7*b7c5Kh zW@OCsxGe>LcQO}^7LvVM`J#H&5}2Hv)$tf$3`n~F5eg)0LM4`h5(lH@kebdznE*(g z?XWZ;YYN`A#xN)}aK%1qm0yd-d-yIn$Yz|<5M%g0 ru zAH+*SaQQ8l@iVaP@Zfx`RUu&G%v*)m^{#H^Jc5lx5b 76zYwj0dq@0kdb ze~sg#HKbBp)AS=Kh1o_xVo3pVd2<&d%*oKpd9EO8zswjI%m=bQ#2BL_QnZkrcB~>I zt-&5I!B_Nfe-_!HcAwG9g?OVox;s=ncN1Zq26$I0%zAgPSaAH^{7+|X-Fu}`Hp94K z!Oo|~95v%1ZyCRzWzQjoe=ayrjyt-hCpz)*J#Mo8k!2F|goNFP*^=gUlA?<4yyC~K zBA@Qz?4vpx9KMto5Y@e!GZwnH*ws7m!DtMv<$h18^24J8gdfQ@wa8oNB=*sNmE%hn zy2>U@$O9yma)7@X7RN+3e3c^9wK~_V%TOQrv$;Kx6K`bgFMR?;T&lYCfFOZTq;XG! z5-xyw-wEk%BmHcN6Wg{M9`;n0uPb)4=N~Jeq 0CnA^ur7 zk2{^OrX&B8fjM<^i(s6_v!t*$L&a}t&zzW*EMG_U>k2${ug*pG35cu7eG`K;ULt3W zjjtMd5eM-$Q<5B};ayBLtvL=W%u&m)sxa;WwWXfn#kEyxYD)gA V&*Qs^S` zm+37UPz&~(b!1}O|C`hQcXAq0@m3dsWoh~hY3fh7xnzGFXHCd8NmgV?VU cM;0mNTy SX=JEp-3e9WSV^G`AXQ)K2TkyjlTZPuY^?~dP yIrp + 8Av?bPRVo#( zR)?O)q&+Z~O<_}?_A{F3POF%8% sRoI2YRK@pH&2 z1f+kg(rYnMQ)4?SWE9?8q$LIPEsE~?%tNIG^(}sa`a^W{1Vb>w8&Cu&7&`g<34!uF z9w7|j-UmXiew5MELp$}hLbR1iJU BT)`E z`Z8`_LFh1FYYY~y3pgcL^$YbFW>1K%*{+$?WSqaD>9kGs*Bhc0l~14HVw1&GY{n`= zm*K3V^+inh9?TnrHTlDXbw~(LgW*K^WU^HTXYh@P{?l-tS~w?HqQ3wB3sLrqU(VD% zeabw{-S#LQ=FF14go&w`c^zz}M*1Asquu>mZNK@MkMZz0&sivC%isAIH*a~#jL~FT zP4GwQ935nwT6@&bV0P5J+Q!Da$QBl@rC {z{VQaR;4wVLAKb~yspf#BQ0M^rD|oGF1}$$j#*9@XfuH`9~dGK zC20lVS90h88N*Odqk~=Cg|!(rxg*KHioO5lXer!fb^Rh)uQr>H$cQ}xl&Jn%>{sR+ zI4pm*=-rjiuhve*n!w2sCtA3BGrGz;-R =i035=-Sw*@;2g-9p@<5 }s`vzR#mvZ`dpA($eDN`Ti z*=Tdb=y{taMw9@k6eR%0WqSa`YBy9!mjTjfOr|$h5>d U%?9>I@|v>=pikW}> *IrjxWY&8o|m;wm)#xT$ScVB-crECpC=1}7@uuS zpMaldD)qx-8-H~K?obkZB1ambOUjrcDe8NPQ9&F&P|L_QxV*YgEbuUR^CIZ9wD!&E zQwS=%*~xs1X@mQD^7h)S@B25j-D)%Pn02iPUtA~b;;P`;%3tsPVOrHL;gMyDGVdqr z5T&RcV-qFR6ZSlijRyxj9`7ZyzXmnvz*g~9NbH9WTkHWdkpJ565GAqA%@7iStv2;g z&LD>sVF!Wp3k`*+<&sM@o^uLvb^H@BYG4XX$o$Ze!gXYc@BeK2_5~e_V b`Ov%B!UmjbOJC8_FQQ^Nt zO46IExfWVWqRhrv;B&oL#RS{QxZ;b)aKTG77xAN!D78&XGI*-F6tn)aCGnRJ0o4`p z!*+enz9!3 {+U7ZGsETs=N(8|{E9{;|qAq^`r(XX-QzxOINz`tI- zsl$sBqN3DuAaqDG$#S2W#4!c8HU~UrKRD{Dn=authJKb+mSw20!1oa=B@do!q~dF^ z$Mj}6=SK{snyjljmD5PjpNC?wvDPG9hPQY)aCAczkhKMOzS~w-I5B@QUtMEud9_-+ zD!(Mlp28Rys0UkklOyI+Syvev4Oai-MS9?I=LVPBP_rE4r6%mTpGAy}y1S&F&ozy7 zg!}{WVCld3KRr!`J!*{(FXtvq8wz(W%Xl-)Q!Bl;iyBa|-gl>VsOExCmzIck3-pT= z)V8R-bz8w*F$esdJZTHuUz 45RO~1lR}jT$6_ZksCbu;X$7qsT-T{P*5%z}u1i&~D%Ib2(&hKwU6FRm|6${K z ah*&q+n zpY2n28;E6@`-7r_HS K=m%)P0R>sI`Ds9R|1^~*Z;vN5 zG+-Sc&BVbpO{OK9JpX_PE*!FskL%)a3w|ml$$4Cx6lNJ~N|ujb75`-u5!HIn*Ynrw z8A@45C>a|su=Uep8r{l@5Z%?HiAsxbrO2zffaSHH9gM`xXo*` `G`>rbDcUk9iABbmAgWd_ zVFJjJBf+-!1uH0LLFIHN)BbnljtyO+3U7+A@J<**Yc_4k$MB*Z!4b$$tPW{Y;>-9g zlm|T%ByWT^CPw=}`7y%uRjLmbygM<5iYzsNY%(>58h~e_=^%sh#R0>T!cLhD(*VQ# zgIOpPF`Oyv5WaM6Q~Cx_kYT@NSe${Pl!+IJWjJTqJ}Zb%cyeLljL$N0ZI%r2WM(8R zFL3=VDLLZe#wjcxeUeugwy;THsdsl)q62(U {xOIMZxKL|w Dt5O zQ(;ZWx~o6q)=_FT7!L;z;@u^U&^p0^ua-5K+ 43~))U7Rwws}1jM(BNOqF85 zrgV~QP0CRn-6NM0NIk>R2qkE!vz9l-On?v3Y4|~L2A++H4V8^$1N8X?=bO*RM24dC z<0GNA#D~T(pT0}jea9vYNt2yg9q~CJPRwGT_+$0AKPz0*D0Fq4RuHB4cT{((5 D O(-1>O(HD z3jroYLa;y^NR&{UOXh|77{~ac4V*hcwLs1iWpJg`kNg>qBBu}TRpu&)u9SiW&eZ1r zu9T8sk4Lzh`CxJ&;w|5YKfqp}n-CJ9m;`UgO&AdlN(wXJCPWICNgCGSCWJcw8o5!O z2X#Eq61v)^%7_8SUOFp76(#j!=7vB4G+@Dn#GmSY{~Wu&7*>6i==s@TXA;NjWBuQ^ zi*$8#gR-iwrCy0FqIHcDBDtoq+?@@KrnUG!5#?d(m~FfGOGL0tRCM91ujAcG=C5_7 zuyUomsi*!$T*bgg96e}&W 2WjBra*FQO%Iy zBrY`9i1h}r Br 6L~H`SJDQ-HV+it!`xD`ge88;@Fnz)2t6 zODAOr38^DzKOQj13IW%N^~!(@l0xdlS|Le2K)f-yy!AF^9&8vASV)sH4?YpQDN^GH zBQZ-LHGeRQB&APf+G%BIGIbSEG_f0#bss2C#6( fEYNVmy(?2)om0ui!}( z;I=FBx8O-xo~nT9?t^7O5ifj^hyT4vT%Z4YlZe2CFbBTZga7hBI)lRT2ggBL6tV{Y zLHAUdF$nDIhM4E=@x_D%9PweARPB|?{EacqKM+KV(C_G;e-G6WCMA?)C14td`bt0< zSbp|?380iI(JIEhhfX{{-8*Y`1X>>Y`CI2I1bj-)R}r6@M4!U7wD5PDs6n<0+5@JM zfqi4c#Ty?<)$_`q0$cii9wMSk%&_lPABIE8(K1O?e@F@;q!|>yHZ3@FDlOz;^fV_| z0DZqQ(xJTL0lM5+n3UHQ=^sm2uTabxre#_)hpp0rM@{|dN`cZVg9PaMCzwK6L`|mP zmyiOvj`#z2$bMh!6}>{wTS=TYxeXpU*gNPkAS7VDEtC}>mYlXu5c@mbi_OQ<=Mtp* z`@zcUFSK(ueNa|nOOJqqygl(hQ>ZA&(i2%hEW$|R65~ZMxkUIWkOG|$Z8RLrA2Aw( zI%qi9QNehi5B}flULOr7z~RiLOc}uqg>22G%*bvaihkjP=^9YzH^3hkY}nCOdzg@q zY}wKM#e{rh3r6VfgJnQ{f>W3fC?ld&(T|pZb >p$p7GvmT=&lLJELt|Kbuu zd w3vjUXtuyQ_t$UA+xTm%=Nb}LficdCBnpG|@A0#kr!t0rrva9TH%$wa zQQP5htQt+pSTZZGO=n#&P(bifUyw)&D~Jz+cmeYMfG=#ak) `e<$>wlm&lrj1INcJ zV4Y*3uM|d&960OKwlPql`fxRxO>Y9_$Ca 45unkr7-ZX(0QSxc2ulWB2z|LQOk!5-!eWXlS@jZia8e@N<~(9q6lIx??t}N z&LDJ=hA4&-LKM#fPNu`Xf{dwl5n+*Q!CEp?SS9L1Sn@FiyNHf=sa9U%vEsB6s36)L z<+AB;?I1BKlm8y%m6^i)cn;Go)TUfJXtOLinEH;c6xymOg$gq;G+qXP#^grf1S-G| zRAcbLaTgGmrGW8Gnn&Pz1%fDM*f7I;0z(u5F)~RMPIBfHGY|bkQKBmQv0%@Ta#o?O zz2fcx2kJ`K6xyI$8=bcLuY&4LwxQHBuDXWp=)&dOhP4lW@bv*W5f+O@9@=&0IwUF9 zuT-AeUB!u;#^styK4F7c@>jFWkz=9I#V?2a=%n~JC2>dznehfLiWKt&Mf f9$DDgJR%AW1bS>VDww~Ww|aRLq#G|M!E_RJm1BfHRus!9SumnwE@P(vjB&@;h? zsJ`Bz11$M-mL*bfN aO8XPfetD6Y%>iv&_`>!R@_SEq=ep 1Yq`~GpM+j?p z4t-5+29ezJ?&8^WH@Mq7v%|;F{UjanNB(!Oe-VJ;#bG7Kt#?@%$#>>i^Vyqu9*Q}p ztQ)NOo{3@=k1cSko1a`!fcoG!>LglJtepGD-(Eg)Dvr&^Yz#zC%MX2Xfbw!_v50@c z5o_`sm2)(sk(!N#mnn;%E)AQ1GB_Q!1t6%DyH&5YH|VHKRfCO?VH(?DiHM!NMR@o! z3_W@H4l@kwo%pJ!?48C?{WhF_-U&*Hv{A9IJ5Vi{XxFDd2!0Lqo*uYPu@8XsC)cc- zSclQWWLrO6>%PZR6#9FGUy{hr@$68ro;DPXc&mFodoN+{1XtBXIG2d9cRY+ZmK}<; z6GSoix<@HDih!5(Hk~4PZpYqQ3c3l=r`zF)fZiIp9tcxSWf=(vS&` OO6*>4C!QX!Pn%I^wY-h1k7revH!*vzZ zub _#{bf&rrN0EnY*0)I%MOoP2;_H{9 54|xUrajJhbsgE!&OLvGFse4}2%A)FoFzm{7LNBo~I2%wxuh zH@a7E!^dXSeg3oGsdod6Co?r0EUKTc)ND>2Cii&fa2u6*rcCHBg1^)~uQYg|2uRqD zvfmm0YzKb74^eXa+txhgF^HV0RZTc_V}5n*yW3T9mZ{c@sM$~uWb4b56Xg2ShVzrw zqb (9pb%Zsc1Hr0-kpB4>2w%cH`^X;HWXxJ3=C9aJ_ykEa=mDZH~ zbDAqg-K3^?Ry3oSt5mz_$Fk_pZ1999KQckOzyFVMYxP9KU-yvRKYR0c;nhV)U3HO; zu#i7(?HOfi=Wq`dW6Bsnvxx-F1M>ZbsZMb*zoMwwfkB&py|ltf`cT#V3r#}eZz{35 z?q+b*x_4*-Fu32(`^&Mdhr}L`+vnrJaT3#YADT2QU97z-0u$CWL#qYD$H-=I!W3M9 zdT<^};d!(7mkf8=nAB*6>T)?KQmVd@84uOYy%H_REU_}AxMHpZ_|i6V@ze&Ps$3JA zrPFK ;^G^tSDRTj65H_)YiJ8R_v#jGyc^$ zEHJ{ccgaqXRP2W>HOpD&80gXM0Lw5re_4zq)7zDVB`UQ@mQTL$B6tdx(iqbToRXjz z2xI=ck&$Tjw84x)tZ&Q12Z{*4C&H8}oH2#ArqMv4cH>|VZ!0JN7|rM;d=6BRlLa#> zm1emKVt #j+l=)EP3u$Vn9^}IQs=|G>ju%E9vbnVFB?R^7f^h*$n=eU9GI|D zeha|5)RH+|y?yh)EB|*>m!JJMPEZZ5XqZ}e|2TT|*Y&yC`FyZ><^DF-IQ98gdk)@% zy1vjd&(G(Z)+S^3*Tc0?b8XHKyKY&3y#|5ka19RXDe)^Bj;$^-<=9UL+E$ <)iVi& zGQ`;Y%p(nz3WD2e>-htfDjcV|lgBHjFM93$srzkvu-!K#u^+N!K**fu1NA%a)Vvm^ za@lciP;C>YqCk4tQnM};84=&OlS(xS^(HNzN3=(Joh%yP85Y)S0d))#|ER+K$Do+w zQ+TVvIR)!o)NRl*^WSKLv?j3o_}fXEfCfO*pk&u*Syue4Y5TW^ a)J6HrhxsM7fOBgilCRuhQP7?X)}FPxAQx7N?CdTzZJ1C@5>z)g6Z$9FB*- zH8|{-b|2TvoHfl{J#co*YsI`yBz01=uC?0?k1tO1#I-SZOk8fCwj+SC9l3ifd-HN% z^CBN%qyRI`$|c{jNs^m?Avf&Qx##m3ln6VA*0@2Q1?FOHc!IuGmD2nqmLjdz^NeL& zdY@+bqdfcXUBovhX4Oh#g-K`asV2*@0ie8vPn81@Sds3O@Ldp?kp6|o)qNhp0k;2j zuEaY|wYw)w+iJlY-ZKXNKcgJ+1A6J_ccmCNsn$A|s=R9$PpIg+PSqYXtK5u=s7S@g z>8T|Z7iNRh AWF=G>^?wig&xS^3;Q(q#D~z1eKKW^*j0)EUY=l z;ucZ9a}1v6;{u69F1*uddFtLMlutYGNJ<~S1gKF*Tx|Z}qQE~`s8PArMla&9ds>9} ztX4)ZQZRc2kjT?eBvI>M=0m8}Ym|5%{q)Q5NY1H+FYdD**6C$KtAW(AldelNvL64P z72uq?{f k%Ob>Zs#+?^J(ujhVEE~^Uc}}{jwMTvxiwmnsN5z3rI7}1VUw0=Pq!46 z+6P^f2<5d&MCM5*gm5mWpK=;4`u<{FkrqmX2k*POFG! HK-pDLamXHMf5^FP;|N+^>+rrAy jM{ghD +j-%G%K0cXct1pB{~t6sG0 7kiP7ezbWz);5}SK_F2<>c$j-ur zzxXezm*7>{Yb*=&9;GxPC=ufasQ>5q5HGM2RNhfc7epxW@2B~sUO6jN-lMD+L`(_q zr_(;nl8?KNS|XIIi>z!O_sButUV}`vy1{vCi>zrMcFBirt<`PxpLsuK$aa?8Z4|@w z8q|7xi1(M`6t9TlR4eTR!5_%_z`_S6{s+9;pK(U340=`;kpb;Kfu>rl$I*S=WV}f4 zK~o%kcxIZwF0y*awR6IenT$V`#0?e`B3L!#_>;x|MCR)!i~o!7LU*53h3 9-Q!u-Y{|9>47ae6h+^Ij=>b)XIIY#?b;Z}693shmyRD2$QLcR*4&oNd# z_FBh#C;|>>&6)o0N(h9xPX?C_>DDriiEoj2CjkMEjq-e=22lbQ*gbUFm>cB+on-sY z0);eYIs#gsm>qmiz+pJeP-5qx-YI}!C1Or|DJ^WD J7q$odD3hz)^m_s4Y z_pUBxGMhEUlU*Fk3tyJS>87A*2hJrXp#hJ~yY{LiNwqrk!;OvyEO26W*@dxp0QMvL zCG7WEytqG?RQJxIAH&;xt4di~Y&yD( ijFipr4Fsm^X9QhyJtH^@V6?R2;hDO^2N$z{6h4CvRf zM6P^&J9_uAY{YFp1%Yj%LoJ7{HOA*S&c@U^^e!q@@9*{Stv|*gSpEnWY-p*+)>(Gg zcum@@uCYG=$=?)gUlsI(?15WOXgj#8CqLov7ZXUdvuU?izHziDA*T$>`3JNr+^Y>~ zL`#cGt0ZrsW!LyftR^hN$J#)uzZW8NrAaeskE-Qia9?Z{F@bG-tAvvB(kt *pdYQ4Y^4E(KL5l zX=Y0t`i}03f$6xr8;TQFXxGcm^2t#z>YNRyYXmue?cy!@hcdBOx=Uza67{_ml$2)L zaST7X>^OzJP9*pV8{@V=sZSG~P7u8)>gkzLs)<;g{lYr9XFQS;cJ1H0a((p)i6Tpy z_1<9!KaxdES|Zs&ByXdcxLfqV2!81 }e&dM6XvfT;S4O>RJMAefy>z9b~OU`=1^P9@ymKqEUR8%7k5x9yYECn86 zK_3M!J|ogpteOXf_`JypnJ>XVf(;E~u58#Z)>F-gk8(kbwHyjY^LO2WK`7KrM+r DwI}%E`~Vh_Dz>ju%xiOk2_{USWilg;xL{Mb z^VAPVMY?;t#~G844QH_^{g~`y^;M*g<2d}sn56F{Nsg`$JRu|%!>HfI@sS$H^l~eR z&ZIAw7yLpkHiq|k9L;?04ur=kBF}z()0YH8|M~l_oQ% 9>#pyLUl!#^)_HdKx9!nww8cTuq! _!f6R{Y_@wn%W7cXgn@Iny{PVA zVvUc#52b0lD3LfO4Etg4Lv^7C^Cf{lhfaXi;^_~aMpNPXh2b<{I9sK0JDQe80t7f+ z`U0^?4Gs71VX~}DA7HWyejiMzVUBz^elu*JjC%ziph-M{bA^sAgKU$VE}GjEzAX4x zuG7s4E=z8ow$0H@)&(!CbLYxqM_+Z-tuMH0=%u2l*5(R-h{=u=NObi73tB*>zuXqh zV4A%te*)=w%=+9Srz6vDsOelEP}_5Q?-ohFJqfodR{WYlM~c_<#Vvx~8(aIyYA2Y~ zSoU3=MJquE$5~S?(ig3+7MY9G6J33>!c1_j(&lQ>2I+v+q74+LlCa+THYnO%?|oW2 zTU31wcZ1{>U)Uh)(c`sIF3DLdi`uWUxlP)ue~RKS`7W)~0~2rt ?&9Y}f5r+xoP!`@~8fPqw3ANR6J38|b7dfdx43ea-aC{EXR`Yfv4qOH5&(y} N}72k?8O2y8XUgl$!bG@-)rAD-zcKu1sB@A;DfcnTINx=TufCzkJ@`R-sht_%H7u zgmfi>l@LnowkZUIP|~jnLZ?Z)7UYH+f8I(}@nG3E5H-Qz#BA?9gpw>^?nwRp;QA9{ zOLa9&7R*wWAC^=KHVg4OH gC1h?Lv9Dz;3O z-nKH$zO^7?JO|NPTAAOf!*6N;$Ad9D-KQc8nCB+gUa s@q}lD_ ^yGkTT&g<&ppN_#O!B}|LG5R=0h4|eZ6RkAQL1fAjM5dE`$l&qwg83kB9-oNC?Gcy? zl`O5h21-gm2<5xTt(b`x+wc3Kf0Ed@WxMo1LiiA|RymhRfZRe$?e1(Lb)A+S0~Bp} zCo)h$nMy#p*nMzk6y0K`*mB1dB(mc+=ud@IGZ@Gm zO8=wa4HNP%VzYfJqsIgzR+KNRJmNeHm-@wuy#h8W>0e4WRXDPgUOyH2wOkxo*{IS| zvI7@)0QVHPN!zQGJo~1~MXnEy1dwY|5zkwDk(Q+*JKFO%5~jWy^FhAjd8CL{DM#-u z)Ea%s5ceTnC<`^iJ&|Sle>z@7iJ`U}NyBx~CBwAAN0x_r$_Q0h+w~)H($^zLNk2g` zxI~*)P07~Itejl6Vjkr5s@Jzo$sb?d`hetWEx&0`0d)Q53k4ANo7EFQ*k_7Q0NK@L zeE?0*894!z*H4=XAZqS4soDd$vfp6yc43x7niR{ur_zQJU)_Bce?%C|tCTd3TPa}# zzhb$^w7wv+pmz0^vFzyP4@D2%UJSf~F$jYP&!7w(JA*D{=nSGLSs1?H`^byd=B4PN zW2JnSsRR*Sx!NL#=K7xT?Xr1w0M0$|mgIDS4auoO+L4olZ+JLiP#1KXe$(Bz>-tUG z-JpAwLNz#y5`38ce}CM4S$E_%lJ!5*X}h~;c`U0`cAcqhO7eK-i3dqSnQ(D47cKqk zKWtnwl}ciX0HE)|u2d!&_Y#Z<1Oh-n!3MTc1sc*w6=HZB)wm%;d<7ZQE8Grbu$$xq z0CSl|fPi(_*9ZX{+C(SZpjJA8MljR~I*Q@A?dgI5cG<^ae~CNLez2L%kk?zxW2oz= zWeuv9mboWdq1nS&7Y~EN^{5;MMZvyif*;;IDQ2#yet@Qhe4y~e9Pdvd0c|SxIAh-N z{|nsyU0qo3NAkzI>gn)%i>IXLAO}ji_l-fNXJFKR$VgFG&lf;p@3eNctMzMvDahDN zsPc6BU}*eCfAow`QIP9_KFNO_Cbywj6m%f0>?0uW=`h$W1BF87G0L9Sae&!<3@hsg z9;^1^V+8PlRdyTE!GNu&k_?cSilDLzs~X^K#>p@4GK!X8-UWq@#^>r ?ou&!I#_=6nQFHjP<7ACacbe>fr{P215xP^wiS*j~?-s*^JR zH96az2=Ry-?=FZ((P?u+Jh~RC(s(3YwnoHd`vz>ueQyQ=XY+jPEB87^Z%h1qJ^gmQ zgq8Ll+a-LyK*AyugwI8d+4;Ab;pqzjX*Esm6IU5 gvH8N;RT^a8_I1NWZG8dBhK*jqZF7| dFLI&H-oMdN{=L7~Yk3^Qs&0X@+k6Afo!~W?+yza59 zV(w&&w8;nT=*@t^9VjV>L$)Jk$-d=sqZhNjf7~4i0P|`(Uy3)JO4=Ie_5}_G;O5$X zdXw#AF52>&{PGuK6k?x;b;DCCs;=1?*2A;I@7n&kA82LNqSM7jEjeG@aSf^WqwdYk zL6-Ym@vc7U4>w(>#z!W()>jEQA&dNU9}nMRF#raxQ<@%yh-U&Gg_CKGRUGgk>+_Da zf0p4J3KyHW4u!zbk-9HUQv^5^EN2ElNN^3z*528m`-Z`NAgmP2SZ4G-Bz&{GAA2!q zj`Hve`r|>IbkYR?cj@I_yL xIx!a^HoncyIu z(oS&j7I`Q*P?y9MEP4dBc28YFaQIC6e;=Xzhro*AJ|u2X6PAe4ELfrkHeiVv%YG$z zTs!*K^uhXJffd7!ByLbUl8DjlNTLU}BZ(QyjwHBw6-Y41xTgD^=FL8o?Mkp1#;bsX zTCakPX1)qOu>C5~SO%=n!& `#hM#5MWVUh6E04yAm><^-B2A_A5c7S@4V=LAPRBvHJD pKAp#shBt6^s%YvPQCTo&klV(snfK$#XOc; Hv?&}PTK@>8M*cxrq(;|w~bSUiv4n9A39CSJKh|}!x`ibw2Iuj^dFCh>k z_YsmpGChQ36UXo*ba3U9t5jUqSGz&_t}1s!<)L6xRirM0SlEmfJT CCtI>cb zY%r^y5vQWoE?II2=$AcV4E(cwVqhY2u0obquZKAJJ?(q;z*~csfA<}|56?lieRf#l z?7;A?%cKPavedtL4=y9KoCrgpb kUu=*L~4wvgz^4pCx+aexX+wxRJUhA?m)ZM%SQ@;8x5=xNBOd>|z& zL_&(y?KosSaA##ic=>k_{A+QT3TiZX3Kh^`CPa1KAOEA^9TV-dY{&LIa*oR(=YQk$ zJzaejmrlWYksFUog4GYybkz(RiHg+~c?!=VA3HvN7{UV=w4?)#f!pU1v_4n|dW6aY zp`5>6)9f@THt$Zxps;tWqD8 pc*T@n19jHD-7bqMz4?w85zAoA!J N= pDzzFDeAOp)oykdnE@bzlI z&<=488_YSaLGgWris0q1f&r`dViFNkiOwTBZTJMH@Y^@+>C#t#J$IS{vwyMKGz1K7 zyVKMMUN4as@Yw3Uf(qa?PZ5u2ha*6jWq8n> C@c>#rZpyEfh~4Pf#UYD z9#~BZ7CW)7wWhi8&Q2c^-@1kmQ-)`G@G$8qw!1pTTOCy_9JGQC;Gtje(1$yYb@5a1 zMqh#dj0A4Ivd>|GpZaIY*?-!uOjzOB16}QiW!}gS&Lv^vhgeX#rzZPBpREnV7rD;^ zKB#T_%@d8)A<-=J&7NpnUjoAEbXPz`$0Ud+DD8vdsi;77j$zIIc(G2v2ewa4SmUXj z8hQ`4zy#=@R$xJTrxjk%zG;Pv-c_uzuse!17IrtW#zOBTR$xK8h<_Dc0AIaA3+Sm= zr~%yNXFgID%bTAi;(yU+RIjO$)cD?cg%iL%uhD|~%QY~%V>tpt_bh9)fX26m4Pbrv zmY^QRs&I}c7Aec-F{4lX%dAz|5JvHBA%giSNL?BbyIGA38GGUcG`8@Ak+6n+Gf%=< z&d7Pfg*11IT3{eR5r3Y|xb_zin&rHgADaEllOG;>Lgxt0VV=nia7z2*+rfl{VhF>? zhXRb0+tUg2m7CKD%auDa +_Da7FCZUuzxgN-xPtGtk=`=KCh{= ziu*{DWyuj}+APyTqGwjA=HlJXE_hk63F3Y?RtQ+KxY8DAwNfJ#HKVm}fyfw_Yzf9k ztd;Y2?-;Bg-I6gs`alZ)Bkzr=g`KbNvas* zyx5od C$5*_M_-{GCgAVb{$DD zW@Xb1v`CSeK7z5N d ztnLTK@6}n6)c6(jiT}ff=M>4&zed(pdR0 J7u|uW?FWrpC;saCB&HZfWN*+#V@ut)@Ey(PDj}&Tmew z!JgVQS&51;Sqh%^6MJCw{xf@0i`pY)+g2=OPJvW*$zOCrv9m8P_{2`SoDyoH564d! z#n1kn5PxdPb1H1a0Tsz`8M|TegefpeAu?a{X`6mX%DPfWzKNsPmVyEOfvSaq8>eGp z5aJ_DkLfdhx5wO>xciP)ZPSr%IhW;jY7MvEe5M4(#eDH$P*$XE%jdKx^@rwh(dO{H z>ZYKXY?sBlyzI)Ci!O{h4aj2hm@GXShyIbY8GqTal1*D=Vo>P^(hbqtqp5a0mJ;*Y zVxykx+KE#!t}ggg%(eXD-CVH8!2zFT21Lo*52KPJCF5WE r3jtEbv}a@3is zzkd@W&~&-6#&d=nm0zOm_HG#TxxtAAO^R6J(TOIRa2%i+rrzOdn(21Cn&6x0L^RjL zJ)&lrs9*f0Y?5?~l2_thQFD~<*SJPSG@fEoukPtvAewA1qX?$n$tafT_A!dzo9JQ` z)x>)kMKaM2=6&;}84kM4d19T+%q{VbW`E(Cuy0&QrtTjXrs?{~h2xv>lM7v$*dg-E zx1j@x`ppj|r3t!BK`U`@DJdrGC?&tteWWCru6va9-h^kAOcM_vCC5bl;O#KhLxPS_ z@=DwjYL3Y#C=|~(kf4}|Cfm0tf_wHrGkyn|&xB2uYU=% h-XFcV2s5jZ-r;Z_4aLqj{rq& zgK-_}l*SQ%HawDDtlh2H5q~r(Rg$Wy?^#!6XL_fESoX9Or%a^GZ5@rK$?zolOq1l; z(~J$Y;%u8LW3{-cQ3I0n$Uce%3~4icBy7lJWRxPYsh^I;tKz*y?_T~*-tJ!ZP2GN7 z6{>i^9e *4{y|(^zT7SxS^#wQ~v4xp? zqo(s+unx|wC7sW@1#mt+C0%~t-AX~9cx*AmR;^$4>0WXCl0Z+x8A&FQJ&@#(klT@b zqWc=jA{_@K>BRObl0<5* h6I~bt3#kISae1E*x-@y@5-zA_$>bnGb zwKJqr=}yj2OGmXep+vfsGt8o9me24>s$-E045;!1u1gC580__&SwspQ&1no4#aQoY z<9ep4zT0tS#dP;dOW&)ne(6Y^AKufF4z8Q6kEnrj0@`7XOcH!sH8Nk{owNA#V7AL5 z^W4e5GEs%DWPkS_{UI_>zkn2(oc|hXaDv>~42d{HK_yimD7mHY`Xo*6Qtk;WX^{;b zd7$p0A{xC$HehldZ=#oEvnA%(B&P)Z*;hUgp*??t{I*2=+L}_T{_Tik`hM<+u5=?b z6ZuxEd$Sa*_K0I4BY-5S9oSy{krn*K9ul?WD{jR@Hh;E-sKk*fM-dy>^ie8dpS85h zx~8d8W;@pOsV$q1hYFH(s$4~@PHmZ-{Up{gA90&E_KDX!$2CQg?I>Pwwx>0n`|c!L zl(S6MPShs&l)X;k5#!ZZKd_z+sXN4{=WO4xlzPJNTImvqw*{3{<7~+-{rFnaBxTt= zt~RbGq9eTS3$6dlj{0^Ba=hP8<|8jgwMpx4fjJODfEhwDiwebCOs{sp&*{se<)w zNuIO&rqT0T$uuGB!ZF qTimhIq z;*_BB395gOlyq;0tO#n}1Y5DbEHyVcRZLHWPDc|X)RPCAEupb{oQ%Njfs{;aPfpVv zb0^X|&rmxPs@vRkno->9IG~WXt|p&9H#@iRec|8*4zwx+iVgS*5GZ1VO$X7}^l9)r zDI1KFsEcs#z5)f3N5f;#CN>d4A &OQ7u6d8ZN B|b7qms>abRLkQVJ$~Xj9-Ic96w>C7gunhZs%3r?GmVWy$tbJNk$%!}^TzfoTG5 z(r15d9-jv9^GFKK5kI09Ec&6N^ $IUy+LMnO0;{^GsJ`+w eZCQnC`#gd(OUb|rH zB~gwmBJ|ykiz24GS8wCpG}B_=dmeG|Cjr!XLbC$zJD~}B&XqyaVYT?P>7KK(r}L`M zG`R5}vO(|JOoNf1JBDWS*GQ(K3~3PZ?;hY7T{m@qKUQK{YixJ9FiFm5uBavKI9Dur zoZmL$SQ+QaWmvQlW0aEbT+vF!fvza^>|d$1Qks7BYV h* zD`9u88KxO|YH}&LPfaNm*Qx2G 7(@NMOXog_RH^G^$ONSS<&r{@e zprmkrE@_U!>_E#l6+Q>jXKSCH0;e=PKus>C4p37{r32J-QW-aBI_dStVteJ75T6gM zbgl}5!zIyJL6b{9V$eL(b5)vHS`JH-N+@Z3#49ELCD$6JF{oHkNzPlWxh3o@)-+S{ z6>DCpxQaEWL@hF%u;Tkzb5>0qeTHc!lAMcwSePa3AQqA-O)srk4dMXURQ%RLOsxUT zx<-|6ONbb~r!^l`r`Kd@4*C~ !>xYgnMbtFii)l$))5yHKkNsr>2vVL%8cG>G{90UBbj8Ij1laOV};U98 tjrJvDs5*i(AM$!8{#p9-Ghi6gXH%cFK!XXJqdCDmTH~E573QqErR6;KDl-dva zoD7%f&ia&4EZ_K-m_l>i$f|C3+{db0Z$6#Qb8~@fCf*c$Pv(IoLw4eP>pCSawD2q) z0Lv;bDXGUci5AM6ijRVvt32S4N$hn^hsg{yjdwOJ-cF%$JeEhp6UnFwNmFT ^s_%ON%Ifr$b_NvQ+x6iPM4fDbY#ENl%>Q&)gF=ok*|Dt})BWK=)0T zN(Z+^H=V8+ @>tSc>dDB0XMT}6hBw5>R2+5Kc3KuTbx7yvo7sc26u$2@w3 z$D>DBEbl#PgtEM;_sn&t*oq7Yi!13^vWobaGc+e|HKjUvywj6|F4hChN*(f) a6tPFfodUm})PqR6G@a
9`WiAUZc8Vm1* zj{qF}inaj|7@D}9hW}b&7!rL{0-hVrJQ&DhZ1{!utgEu!`0RX`4HO4)K3rH5gU34L z!DAV+y0>CatoDOfA^=#dM>wCwH*VqmOIAR1u6jEB?z+&!pOyH3mLEt*@_}}K@9adD z*ULMVb;tjIzCNPq`VP;sgrx`YPD8MiKa(Bf5d)+B8=>oYDq?uLEqQ($Tt#v?A*Op; z!+0Yu2*wo&LF-dHrYHTC*0htw)bE_P+`PsanJlEI3dUJkR@;`(Z;|+p^z=x<-x~js zm4#1 JA>{!02_ n>R4w6lu! z{afbWk9kh}KFfZvvi$$zLHdC|Nk&TcK;Po?6irq)!-3WNx5)m!q%_NRWt0D)#oK)V ztxRw60s3LAht*v0+kckzRQCS|k8|%ns}q;~BWbfoQ3{Y2*`q9tAQl?*Eq$9EhsdWh zJu#nuI(NNe<&DI5E4Eh^d3w+8@7*)@(U`xP&~#0Dprm`>Jl1cIw+Q8mLf^%m{hNFO zbqDXGs)}^aZ}JgnU1ZIDCYJbT85Ol}-sEG5IPOgn-xF46zDxHKcm#k2h>@Rya*y=D zgEg_*Gb1v3=-=d%RQ>)<^6u!K^#koP{zKM(jkSIWZ}eHjUgJ03y{RG{tK{h0d;rn6 zy-E6Goldt_adJIKhFnSl$&o8bqP^DB4lAy{1E&>L6pny{4s@!k?CTpMyl31C^J^JU zUmlV*ShgYz>AB458{+I$5+nxUfs}8_{AB)6qzxY_>5|}GjP;&20E 1)rV308h3nL(1MJA4bY$HEw%n+kKU7ML6~NL69p$LI=qpV&3?-I z`K-ye!1w2jbXC*66}o@d3kTi`-+yE~wtr)s{|S^Q2*Xx(Cv&xVy}dDU;%(Qow1e5* zf=*UXJg5>O?i*O6QGO#jF+4Vzh~{XK(Wkr|d-f*c<_A);Le!!V&76(Bo~%uiX^ HlH45*O z8n3YHtAjj7TK;1kSP2j}NHP9#gAya!>i3D4SDdh-1;J;T`V(al`+-2%yc0*C*XHxC z)V(iSz^V9}@q<^a>-6l7+0&{UEFMwc;0ol2cXg+~|2)H+Dg7CAcUX@DS73R7oU;N; z$!_ZiEVlh27=N(%oos)%vr1r@xShgb&7tElK9@XLt%h7~vhV_{n|wjx@UMO;SzTOL z#VxfMr(dAr$>E9&SzZ;rm>?Ae!|k>{A@Z`W42{U8q8;y(tqUY0GOC-5KIt)0Duj5* zk`5nxzYa`>^N@Ug)9K+ThQ20oMM_4jD=T9X5@BsTXI67WMII{ecGfK>t=LZRh>WPW zG#$B{7ORAGy60hBe#rQr^eN*bu|%}#Q`7v2?u7)2q`Z(Ml!h0QRMPW8l2$5SNRmm; z3(c$&(&_ZP&~@4L^b;#$lRT0m1B*S4lVXx10qc{7l5&4V`opi%7e#bR3yV~I(uz@Z zm$c%Nlt)_eO28ql*reo-PH3g1*ok?gIe3e_Ht>W;QtJaxxy81-Q$Eobo#~!7z6vcY zQd6K6vjo&<#U{G)e5b`P^BU >69$WwBRmeV0EjC ybsd#^JaLbP&^0Ca0Au{pEjUlqK9%3PK zanFk(lS)UOeRE<6)Na1Kw<>{vK;ce(w#}+wGx5u;ptDQC^p6?YhkJOGzI?k*L6bNQ zk6a5bFOY-_E=8}b3of<9l-)6SN8rTj`{t+EU5X&_a|$H>9-Bl(>ro#?RW}8VLdUXX z?~8wXT?bk6UQzzayHhYNZ@LA)ocG87o(7-}?#!5v{**m7ojwr7@Esi8X!8P&Z)E)U zCKF2N4!+2M;BobyR*gQ;kVh@zlf~+k4Qha#Jj2g$JnaL~aNOMLxP&EWU)LodKZh_U zAi0k5tA`ZTo*@FiLO0skjwp2}dnai%@^u(lv KqspIIHA_aR9>ImH(kZwBJJWc zESjuth65kZ+9f1#*z6m*Jb;pVY;|wYr^8E`WL9wVlz${jZ91nXJ!aDp?6H}#nhk%m zhlow4r(%&F?FU)SpX~Q4^B;v))$H7}L;Pm EQt7BO@F*UH+I7jQU0mlQDWv0j6rBWIk0O$o=TW4Ra6F1iT7GBYl#C{) z=yiUj!ylBiHpN0vX{6(Q7D@?tpoL6gUT7hfgeO|)q~(o{c_pRYDSD+(Y=0QydL&69 z9dD%QB;bh@k;J@^B9(*(QdED^@;(cvWHdQNuk)>=eQ#Sj4Vg$f9%xM}0Y9{+lbAPJ zQ%k}ptqG;&nNFD{rspYosqcD1FP?i64ASvSl1%~*N%Ba{6G=` pr|E~Kblx1spkphOJ+97=(VPkl0J*@Ac-D$B9f$5&*YL(r4**tZkMUG1mBsa zme?En9(^6y5tW4B-1lTwKOIv_M4=AsUhHs>9g9pf(#hH^loCkYEMyYP-z>z^FtM3V zTA7? Fb%+}cJ|5l!wj%HvEPwZ}+ _1XMXcA}B UCK8GT*QF_9FFQZq~2B$tI%2^wTNORG*8CDUtbK1n)< z$V<>(l1bM|NOo_*QA}(3l64lTES)>Ys%wfdr`hA&btcqgkv)hwc*3KGqP*R`f}* RDNH#l({W=#p7LTE6S}0I7J}IV2Z|-4+mhypDg5gCYRe)q*j?=w89dL3XJK zq)JMBYJej!>S#_`5}cB7LXrtc9}dQ5Yzs2TXlFS19Hiz)h
uFrUhtH>8LaC1_5ts?@9L~uJ4%`q~UpHHj(|#%p)PMGjodW zb7mc$|MDN~tJuir(f+^O+3!A+E#GB+~IY6QKm$&O{|K&oj|V!ud>O((*rRRtf2J zYF_Au^g}%NBhb_EJCaFcha)*8 Ph`7aF-gekSFEDj z{EACD7Jou29d%C8`-qWNT;C%Yq~m!cn*{uh h!{J*ClD;s z@&l4lB3?jpNzeyKUdea>$tFGfm$Xu~em)|4PY1#h7=X-F(((fftwfx`LMTCxu#ii} zEi9DM^9{$`lGFIqyw)Ey=5i&0o`!FdOd@}~Bgr8l4 qTQZ~9g}I$i9BbpW)goRyI>P>8~X&G$|m-iPkLL}XKLOB z ;KaVlH-<(zgzZ#?6t;*Nh8 zLh1SAg LMS~;U$~`X>E}2_jd{)yitKt8 zN|9a9LL>p#b4N?sHr)`>`>ZLX;((4grRRf==%wR^UZEA)@Q+wUw*4b6DVYCM?L4CS zuP7vA{%cMNn*W+!Lgs&-R&4WMvx U@(oVQ4hE;Kj)aVtY`;mWY(=oADBvo?Fm@v6PPj{utPY(f5>5T&`x1)V|)n-ty zt|DW>1|Cis3Y{*ulzzoEs~v~l7DeCYh;}tJ**#OCgxC>vVPt;^*AB3M?#pJ6582c1 zK@T`B8dTk7+n)Nacj9ka+{(XhY2UN$!=o?Y`vI$qHZ2VgpO5 _M3!7Kc5P87I2$mZ{|JpycE(!+_-UE*O7o6fUA~_>~z(_eP9- zsn~~2VQ3YsqxoPJ$Alr~7-WSZXBBsaq2v~dh2xf-=6AGec%Z-?^^f$ZwM}MP^&})Q zpD;TJLtWuLA;+&7CF=htcBys)6Tg&ugNb8$ox;Q{;l5!_F;(M8x2ISbrrBXk{1War zI7_p=I$_zkY}kJZ%+Pera4=d;Rgt<#<~=Gp$#wiIYO #t>W49H-lmfREtt6wi6~C5rJxxyA+R F}26i>bT^`j(%d&pXx*=INspAL4d?hPQv|Nfm$V+DFMhkVoaD 6kai|=$#pOUi=n~cOo8J=T;WqgMaO8boJwwURRsru75 zTreU!bd+X2EveeGV({WtcNo5=^&K`U^5Q;MJlWuKztRU*mLK#a|F#OeLcj}o$_nwX zvMGO8Xqp)Z;&aEpy_H`EZ;E4RU4KJd8MZ0Bl-|<-R-dn{LL{KBo6^)NUF6|Mz<$9H zCK-#BIG8jX*N|XRvRXBQNyKfP2qq(+ &ROYp_e6nw&xglU81?dlYGuA^a z0{bQ#+pMYSksZZgqVz(P(vg4bp;#OyO!t3#@u~FD-^;vnSA4m2%Q2`l?NBlilQfxN z)wFX=5`&Fg>6UR42n `MijJ^&K8bHWn$GRm28sfA)F{IAX|o0-DXeE42K3?hZ22c1_##cmPAw zvb-Y0g(bT%7=8B0h6C;^S)q;lJ?(!lXR3UVq#xx N25s-!WT5z+8VjUcXgg_^^M?SXZY?))5NSIwwv&$FflOAaIEb|z zy1NP20~#dh{A-FS-7MYUCS4!$<|qB~*$vAjm*Zo7iSV-8IOMQOTF8a$^Qrh( mKzl#40;4LZhb*A#B^vf$xbyn&{aopme bg|CGt oZ#Lr^b2go|gBp^2GT*JsqZV#lQrQyaC3Zg4!go?F`)r^l}c%6z4|FtFJVO zdZ#Nt@y|DNV){as`W29E=^GQYzH+x`XT1?fQ6LJxFz@RxoI8pdk$g__16A4K-E&JW zOiB1diON05;^mX5Z5e-vNEdhZdW%=t6+HQu_Vs!T-`I5vAiph1jtbCYwvR4w;q?Hk zl<(QzMF0M3A2R*EwI1Z;I#YR9YUcF)FB^+O&Wg8?tL#wDsmoLLir0OYKUC8`XX+wE z5S6sWhLQQ ToyK!$zR zAM`mRVlB{fOO+c52;2z&!U!U!wh=V}fCm#sK9cVO>qssylZ2%#f3D^Al)VvxTS}h{ z9Z0VyamFk7T;)3~<8y^F4sC4Z4w+iHC2N>uZPO1ufq%1C`tXUZ1uxFxwSHzY*Klby zg)0JYrPVvYlb&5(xa0#ciR_U8UcO@l5YrW%J`iFhcs&>O!9~D(--o86h@$a`Z!Avr zkUaT0Wbt@SW4grFe*;40Igo^JEur%fJ&oP6t%ZfoAjf_Iv;$ko?lYYogy!$Ede{fc zWeKq>-a#ymxbK=u4-e5Aaq_CL?72`h#yG~jcBP 4U%v~j@1(+-fH 1yIB)7hjozW*YX%r5Q0$2`thIUgDM5IAFX?pU3aGnIWf07VbJ%$qA zv8H3gGa3M9Z}fFujR4tCD5>Z@g@y^(S7^kI(j>mpf9tv#>zvBLj?4;%K^ht~96t0Q z;-pj#LaVma-WNxi<(L%r1)&alPeIW7+XZMx?;AcuEV`z}N5KfNUV^ZP01bxx{xwQZ zo)JM1!`=m?pnZ-h9#?U(!}b-DJeSjG35z=j?yE+&Jd~l$BED>zABf_sexK a@(I26qz zX77*fi|2H+@W=-q{2}F?PvKBe)UHqC4UAqWe -MlX8w25aQ@MwLpy)h!{uJ!7wmzr{y&W^1Nf!?-50#YirFmilKYTw^-lrh=8^5 zLW|dHQ}9Czwca1Ir3|Z2cuB{0eR4yAK7$CUnK0MFd~eiB3&@o)LMHk;7zq+^6^z6~ zPGv|8q@kgdjoZIT2rTa>g`-%4SZ{W{e=I5lv4oXOlM|S{ H0JO@S2I97i=Q&YDr6#?Zq?PJTNBNnM%Q4O0;>P)J;M0QS_nrI3VH?#3-_S&I)#a zsXV-^@RQ;jz|!dxsaP$KGSV9nfB~km5x`=%&T(>;t3w=Msq2~%z@q1G=L|m@08ZO1 z@~6eCcmOSV#CQkucFg%_Sde}of8CHZCD`i~A1@yicJ5-6&TqMR`oxDNWl2PeUVLM$ zLno*g;LO7TyU1Ym@%=B~ra!KyI(r+v`YDz@$aVk@3wJ3Hhef&^F2iD73Ta`HHbPry zu*;?T{m^#b){YEb(--;18BQ=jhioSpwpais=L5Evzk^|Jr4r$Q);fdxI!q=ROfRr+ zw5ymLxZZSK)1fKH{75$spPLTH+D n zw~KVl2T=Vq4*yj~Hh}zf?Pp9ZR2YlI?5ko|3+>K22>tu3USaxu>)^hV>rCZc-O9f= z5AHiF-a@WAO;26)>LA1)M0quA7#+7`!-y3+@}$F+3WWg5ntJMzaqx7qX=8<`Ka7es zn6O`y?&YS&Q#FpJ4W(j=1R5I5R4*Tmc6`~kLs6Gat+UDQl|tFCh%-*ey2^LRzq&$g zEt9aU8Gp}rBZy`-cP)HGgC$;UB^q>b1qAsU>oh$io37IIfY?~0=_eV_qFUPZ++$KS zpU}~kTN9SOswD>eYl5XZTPGm-h&Da}$r E4L0xU!MbnOa7$S0DS zIwFcPn`G=wwbn(x3d9isOjrJbAz67YCmf@qp =V-Hd
y3>e5*8@0Lix9NUb>3YX{l4@)Go#NHX8zqtSf zXgXJ~&5D0mB8|0k r$_mFR@sU8qUsYoAyX&WUbi0PQs8zG2VS&c0LU`(O_zd%607!a80e2Wlp zhNC}!AbcCOUAO@NWj5&W$5Fp!ZPS#QvRs2ynFsDS4ut3>g!mvXLINTC2Z@2N-4cHW zyBCrmTG_z#OwL8V9wy13UyqB_&!lQOAvP_Ly&!10(p=`%yU*XQ<);sPSgcErpVj^I z7 N{+Sds$a7usaS0JM zQQD>(NErrGEd0;j6&0)1&p&?)4gR^`M}gLhk>s|GjEELc?f&zsCk;)b>i6+UaH}51 z9sqi=q3n_Ui*&_SQ1Rl1t=Qt_4NEum#|(MFS-gVi1Z5m>fP#|#N0uKNmeYUmuuaXK z{umyZo9Z|OM-|1pgM&WPzHWk|Ze~UNF=ZL_J*jkI{_LL7vba=B4*_#tREZ2(^?e%* zEELWIqmLOMiR!Z~dO8f#5wTFn1#NkUB-dB @}^x}FRH+<5c4P)^0kd9c!{VFW#aX6$ZnwdrBusj|K zlSked#%1o{JP@D2SD`q{TYd>867n~*9c~O;VS&5-SWTzvh6K*lQE*?jmSiG8( &N29RrrJDui%0I^l&fO^p}OA~hln*_?j?>`x FSe;G3@#s*L>8Nu?dsOJAEX5`Y-ncAB1yT!^<*2M+Jm8up zg^&Sz%0CPnCzQc~slgE+<(4!A-q_M^yj(Qi8>^sY)~W@6SP;@RX8LT2XCCm@y8J$> z?oVF`hjRHS3vVb{WD9?{4LJm@A21Q*$Sj-z|6po)5SDy-n1p#c!yQOCc1-zyjkJ57 zj}XU2Sq7$9I33+J%`kO@xJdG#j}S;>o#}MgYI+0}ZS04p%5;?5W5X3=RXy_$HEvfV zpelWKG8TrMsAP3NbYngscMIJ6NQcV(DJsmNd7OGVbU&dgzXg9VDt-28EtAsI3@R>| z$_c6>z{_qQTueP<8w|5)!@N9>qaRJYLQJfIure!~y^P9HUE!JhZ6GL7qz1GVSJP)^ zs{~)%ur>Ga@&;ERKfJ3Ob=|N0_mAS|>zT%d9NT3U{_w^#A?QS={XY95TjzSBa+002 z8j4V1-hDVm|2=;)I{bEb_wA>jY! *5A$iSzIgEaw#> zxz##abUGrHssAVflHs~o@4t22FXth3;|Ml}P8<`E+cDK&28(CWXvml{1sY8ol7;wT zS~h1DTId_?V~gp=(+=!*VPa(mM?@ePc$fq{m)dL^E(CuSX(6k(6uW7Jsi4u(n<7LS zbZob* >q9$x91I t}qT=M2o z%tx1Pg&FhNu4>0zQ{S`w)(Nj?0PG}-?9lyIM8AJ2f8+ev^;Mg#ppRKvQQdm_*A7>D zRiJrkU}prE>cGxm21jc8$ex1%c >a!mRvQniNi_?6}|#YP aYA9VRT80@q+aEe(k*WLvN zm-E~oH1c&&WI17jq{N~EhuS^$^X;63g!8m7#9QrV@&~in%H$1Zw~xsijs|N*v$)zD z#$x*t0G8d}B?rJ4<#k}K>PS4cRh@w0TGf9s7`jy*!_i=^h-OvCFt}EAiiK%a*G<*( zr_trX!K`T!dnKw3{L(zZcCjb&)$$88h@ruJfT6*le;QSRz1p>4L>GAsgXSEMU@+a{ z5fBZ~W*DyU2ms9qo}gg5KkGsvzTy!r# lSQmqGhrqOkVys$&B}#TeMVSd`p_$ns zATMq(pBSHRm`jP9ZFGDE(Fw|7W*mP2)asNEP~@`Nf9vQydkTtbx^EN&)Ou|N0G9LW z0|@NtqzAJq|FGC%LAhBeSy)_MC*$bE1$FVyW@U9z=}ff`Qs9zKtHjWg 5#xA z&Shi*Q&92E&!5(%zQZwC)tU*7+_X`E=L#xvPm=5)A`#GaZ~~ApEfQ#rq4$4v8HS_! zYQtD`y86BP*Qh+pIUq{}+u+j+iwxPkp9&jmbudFmN%0&4({6F1AC#>*`=fP5X0)Cj z1hDyya$mjEdv&m%@AR~9biC=|RK>Fg6%_?&S61- {!2Oo!Z2uZ*ozp F-Sa4U&{^%hk>m5x!R@Gm` dGloY14$$vxQg9j3WAIS5vzCbL17W4{cKi^8EEd#Y(6LQ?U~q67 z{$nt)AAw`AupJCzaIhJYqTxG?OpUp)E;k%^@GA{R9OBB4->-jvX$*%Lvt$#ISHz}n zi=}A0VS}CURiI^NQ+DF*1|XKQZO0mR;_sJ00i$I^X18YfkEy&WIDh^z`~K}ycJt-^ z*AHLbeZILxh2aR_Z@zu{KNOIX`;6~;6oT AN rjo3cuFTggMaf0}3 uS?G-xf~P_V7OxIn1m$nKl0V8$W63r>F+hoX6`F(Bp% z6! {)@E{MpkQe wCY>;B<`v8VzEe_|M&!0q@tQ@;w+nad#oIc0YXrH*hdyG7 zAKSuwWxj#*zCRe6DZkRtOvRP&av4j%|K%H3!AG%=`#|}a*ibEJEH@BaE%k-VJ1T2! zkn*D_@o`UbYEj737u|B3s4tve+wty!TWT@)v4Cyjo2Q{8AM5+(-8dX Ki}YIVS|Ov<<**al4w z7(8rJ`^DZB#k5EO2T9ley7~G69peKK$jp=otU~`$t3&xz5|}R8|KRbe}61zJ8iE z&!aqp!|G;Nl(uWC78_)sPlynMj!$mczkuJ#6#3|c%3Vk5Ui_SKC-#j3N32_5NPY4q ze=Lqcaq0g>pT7~-8L!PSlq?S0UPX~`qD$lPb7?$&E_u-S$u^oR4Y;o5+G~yx0)K@Z z `G31F)nK2W4> zOHpWq8|`~Oh_MU;y^!rjnLbcX!%Y}Ki*ct9U=jA++077mBbkq^y`Wf6b|wAP|) z0Kk2xRWr~qcy<{CA23>nY)XX|tR=;eyg%?*HY=Js1fb=x))&fheCrKoHPH1&f3q0z z`d|&seqYk8Zdx8C)0ULnHRHiLWaxcStW)*gfR@8u8@#M(c2)tTxWOujlsBlS`ug=3 zn^&|z* x$+!NLz-(8LS z?##1m%MEs((J9w<3TBJq=pF6wf86qLPEa~4*K}FlQL*6IIX`Cu-w(a9a`0=7^+H^G zCsw#j=bM=-#SCI4onJBhZf-%2AmY1BoPK68a`uI?>5zS}O499xhu!0#ef)lnq5)j4 z;=gOk0*$(Y;7&&$E{zDH4xAdEv0?c4EJp@uOTy~8lm$G{-JCZD*DEC&f77jK1lds4 zSd`pj55sdyanSytyIYI>l&;b-8*Bj?DCyptZ#?zD;qS&aRqBle?eS-&GU(&QwWfW% zy!LLAZlF_(a3iVK0iLaVIiqG}bJhrA>I@v=k?!*O$OnVBI$v-2W|!+{^|U!+;snkC z$M($wAX-jl0U+A>6$n7vfB6FdOtFze{WR?=3x{1dR>x=pAle )|E>j$=kx{3e3Y&jjLi@e>9AAuSjcpOFeI3Acd@EC-iyj0=NL zazR2Dz!R>}t^&U5e?R-CX7}d1d`!W*=AM;PZT3q;!s)`zVc>jWF;>-cH*)XLnM+^Y z l^^U`GAm--mHQKE)k(Vn;MHt;Xuna6Nj *rSpR(K%#8&A6Y*%oz5P{Wz$pA RTGDLtJBu97|pmy%=PRWw0j0YZM+W84iIOe$R?k zhqy7^0>BFle
}Xb!i0`0k9%7n-gwN{O1R}OT-{gG!f1<0HAycSm)t1d*9t7wc%=`W6 zhR+L X1ICM2T{|foVF%y=nnaLEC<$>^y}_Vnh*VVI*eVd5;p `hS1C$oGcwg2V);$d%BV<#hLwz2!g4DBi}De0yO z{gO?OZDe{d3|iW0Z oej21k zfHqsvg^10^hnXHA#-U&}MFb44hlUZb#gHVcCu4%geDYY>N8_;I_;WT23z^5e-)shC z&Io$n_-dpH`$UY(>qt&5lNZA%e^2Y$N#%pewh>hr ef=QMk(PXxR|t2AVPOnh2FYJaJt{NiUks@&n-=LfONDSe> |7JLwcT9p1Eb>Kdw4&f0w2#;mUFhD_KCjr!l z0Ma9Y`;zSYU}*ZsOfSm?12!Ch7!EzA2QV9M7;(F@4k7Kt8b?$PVvXV_OSu-q13Ss0 zFA@zbD@;NQm*Yaiz3{fORZxjK@yGqenSwV{DbSIapFD`Pprf3X9&T5A4m_Fyhp zM_%i Ku?o<^c>+M{Aj3%m#;BmYH?|w3uSXJ}?1&U2ivY07s#&`BUdqY~lzA zn~O)6C5^=VQ^+>A>!rXD%{wp ^P_ zu4&*Xdj0}Cu yS4j#{e;S1r8LOtkJC~PGnxe3M zP0Gz}K>D(+{Mc~lnqeq6SCmfInaaDmTM52k9LI7^1R5uv97N{_n*TtME6Yqx$GC0e z0v*H~SgM=UEGN84GF=)ESbj(IrsL+(qR1A@=@A4E&6pn$ 9FbEp|DZ^62EosQeP z;4YRcw;aame@eaX?;Cd(kGv`VXZmHsg`8r!ff&0LAUI)NvI3?_fm|TWDLO)d`$H zmW#Z5Agm-iR ^BHmoCv4XiH(5fAt zGj7I|6m8R#ct~7(uMcedY)=~mtw-OfoJIfEHBZmqe`(*0T}}bt$pw_qPo+-{fJFQ4 z?(W;QT2lW98xH^bq3Iq;SJ2|arVT>Dh{>woxB~LWHLdDt1O2JVe~?{C@1&N0Yc>zI z_7jd`wP#?&JlDrseSr)mY79d{eCyZ)?^JFFGO!%jgT9b`RWKeXi9(E@SU*f9%YmNc zkK12Ae~QDnOpeBOmW!fM#|Sb5BR;d7VxlxH1_=Me21u8$C7P^{bQJroqxb9yL%3;~ z(~Gi)Y-< e=y8;4gngF6h%0!vJ8f`BSU`3LOz`=Z5a&h($p|C)`9fFur?-m;o fdt_)A3e5c?&hDj$C`I}`?4l{X~o4j>FNHw+pHxyjT!Rum!t-*cVr z4-tTMsgO909#PktEULQ2Yj(t8%ULkFGa`l~6Q`0qhY6C8A;SfK$GAa4vk5XlKH(*3 z1~99sKhuhnNy%$}n%DahbsFjm%YWdmfmk7+d+9Y6V&ZZQgP2%Y!ywMluVHHbxub1K zavA~-cQt@Ox)W!5aS!#emU~qZSI6rEVA#KCCR#BYH1ef`Wj!HV()A~3z+e@r$)0v* z+cc(&jW%h_7vJ$O3$=;iv--}&5glVWfJ_ jaBgSmSS{+I$X&XWq?5*Cq1Koz@OehLLQoF9 Wxc-MpvR?`)<(`5*-u^wo*Yeb-KF_d@2vl?JKVpyzPbVU&H744DR ziii%eA}#MZviov0Oy7EdT{;sN2BM=E5B>rHF*)D~07#bflf6233YY4I0AN`!lMl-# zf5(sw$T%K!1TbF->4+fH7Q4PF#UYzxS7Kusod^kpMW1;5CJ*q&M)KL&?g8t&r`-`+ z#&r5x&Oy!+F^U?3v3~I!m^h|0c#h(&cT{-bU^{bc3$BAj4>fKeq!Jd`4-ud{U2 Zu^KxRn!xm| zUm!HSE-4t=Kv)?HO&`V`2u&}rf<&8ab~7g{E;P!>$_w9# +# z{AeNHp%9{-^y#!8c*z!dK0CoyWd-d-^UpRlE-i$MgC=M_bk9hNVqPZCLTJ_Rk?6V< zjk6ZtBS?0s31==IzB65f+RZ51i#J`R>mb>1IlR4OyTS Ovu52&abcM3L zWQ$e8F2e10^qM0e1c@uDScZuce|?SvyRZO8{`%?&OZ`gfo^1#aml#O7diUk_ wd-{YRw;y*1 zQlADs)cpCM|Ca4Kwm%HnZjbaD&jTU6StXx~2XC jvK}j7iS2=aN-Wr(fwp2_Hjkhlg7tlSX^Xv!#DNVZtVA)v5Bb!8 zHVo1&mVb^t l;1B&s+MM)|sy%f4o2e8CkW7%C;5g&+N|6#nS=w#+ z2~qhM7(z#xCkRm@;RH$TMK;7)sGR<6yGHB+ZMv;los+9K=4Vc?{zd$K%?B6XrtdC~ zPtT&cz+8zDO-7$+f4-siaEQu2?%8G(=LcC;d>j;{IggRhpRc2&P!$m;jEgGnh%)Tt zBTQ4GNDxeCBp}4+O+64+(@j%dF5Ixv)rHs7$IFUzD%wn@X$r|v`lS^jUV<+zvhWgI zHeAK0#dq-H^+u^oy?BG1xfRZ@WwRsYty~I)p*Cmbqo~k%e y8_Kl4@ 41NgUAwWOMMp3O1<0#07<$F5A$y`LgS(xRIZJ(HWB09r>|nQ<)}( zhP>o2&4MCcx=WLt9{wn^Q$~T<*!AHh+q9^QHwc~@$&vF$kmM*@7uu8QYrL2IYuAh| zv;|9{m?o?Ny1nTFPge-xf5Bg`5{>R66bzC9E8*A{f2>fjE#VW7{6E(1IKbJ#EE2~G z7V*Fex(G&8&jkcrITz7*s<~ibE9NbEp#LX!?!qbNED}dC7xBP~xd=v7%rhVjCJMOv zFQW0({}=;Je^71f=HX_J{{if35@(vyv=>}Zkz44gY>&+)hc5DqF~^gxE8XqJ`}@t= zYIpI%e`vvl%OdnRyjhL=Qf0CjiTht8gD2c`>&GH2D^8JdXpkCPm%%||KNZ=jiw0V@ z@VayW_Jm5PD14k(ML$({+Fl^%3IyAeo(QjK$GyNt9SJ{(t&(+?(&ugz^yQvNMSQ!b zNU*Q>R654{J;lI%!B=g^nvM-1tt8foZsv={e?^ >56dM5 zTEv>kvl;)|%jR*0nlhbYQ$r7Cjbt>;ww5Y_UZZH*TC(-%-5LR_rEN#lP5?OS=r)!% z1%vsO4n~u$(IF4CpQ28G)jJXiuYV`vZKjjm(IbE6r8rP)js#(Zt}}cCeHsu%*Sw %LRm4UJqUN_T<;2udlePRQa>}K~T zifA9xgq*cpi%guc?3=Drla;TP)3%oQEAN}$aSuIwURINy(pP^*`XAXd?fDpQb5Dhl zJdqxsgKd9tCF=({{)7>y1_R<_Hqfe_3QqV7o}~Rejqd$KHXYrbEaDe!PZo)bxaNG; z5-+;ZS>To=s}!Jx)M;u6Sgu*Z&s?5;p3hviX;)z`(K@SVF4{4fXAE%j#0EI671D4t zS4sxfGAR>L)1-fVaBY)P@ib0~$J9FB!@{{rEzBv ^=86;9Nyb8w|3% zaW~7dTMPYbq}_8*2WYvl?J6EU+mQ>$96HLRbpb8XVn#T^PH=5BpJpf1XyLh~%%N#v zMS{DOS*G?|D56a&Wx7f3OO``=7n9mFM)LHu=hi@WThQc{vWh&DEYuo*k*R3prA~h( z`gNH%57$%`R{|1c9zoa$-5Yclmh$)*UL3apE>@hljVSt&6`N&O?IpuY?Wj@7bz7mb zTCqt1Epx$5IaW241xR7=HlW0kqR6`Du?H3l{;H0}W;xv~-)1cPZt|)CFH6b-e^*MX zcvbnVS+H^sloSTBp0!+mu3E4{0ll^o2(78dQbAwXJu6Ft7{W-_V@FzFS>oPyJ^}GU zOtM_K5tghj{J=k&9ItpP+fb;fjk<~#wTQ>fs@|^BO-c-T$>zhKjMUFa5D%nea_?$R z%2H@p4+$hdSiLt~A7dqY`8ZRbP8PmsNd6!-K88A3DHBH-u>0q20C cO{P`-p}MBUM=96?J_zNW03U_b!_PXChYJ+UbV_ Dc3#0A7`!G()tu|Q-xRt8AA_>j@I zG4R+{GAA2?k=QmJxA1IiVa0MCD1UiB!pBiXpN%#D5mL68g@bR3PVj^j*yjf-{T!S` z+C6Y54Xjl_FP|0FJneYF!B3ZMIQaRpiqvFpE>&M{DgEm9Kss7{rd88De_jw@?@!JH zx*-|l!R_IiLho`gYBhPaaigiLkDf$)W!hpZFb9;Y&s0tB1%kRFyME|MZai?XDi|*B zPN$2q`*Q3L#_Hh-oD=S}GFJBksW%sNfT8mL=nxD|HfScFv 1H<95`jO0}O=|%)%WqW)5J8 zA;1YjK!*}3AUH+G?|V)Wv5g=^lyC|a)C|If4eO*;e@FWP!2(}kT=D1my*15J`$38C zKeH!Ve5d!cqc+nV{=mxM-;3F_?G-qHxLTcJJo5TmVEnS#Z!bJh7j0y_^hGy+>dQ~f z{sY^JW!G{I1zy!-m6fcfz1;A_AFwuXj4nVOC4~gqXlEzc%|JHif?Wjnl>R^wI}EJe z_dqTED;>DxuRFEW2S7)T1zzP%)iyP)hpg@BJ$pi-EzTh02qpig#A%o-y(5$Vm`N~* zH_IWu$@OsHZ{USk#P@J30l*)B;e}YNNBD!=Y55H2B#-2o?i6*94ClCx<@SeWEQ{}0 z(#L!K>R{zQb_|AY&IPgDU}u?;G_}%5x{Z5gur$+9XbUE&qaue;z{sOr2PUY25;c!N zLBvhRR`^R2Isx`3wJ?+FL&oyJ-li4?N)FDNCTXIGww`r{5elm+LK !? zi7p6$h`}8`oA;68;TY9_5%$9{IG)=Nz+gSKCqR&Qv0c8`PySSN2peR?Kxmqh5(NLG z B?JcI zTNpcn5`j&Ek>A3E5&{G7E! ?(vs7)A8WOLMD3P5(BBrUEhRXDa=@@lRC=T7>dE*(d&BgS6_CpMV7;9q>4@*; z7>8`0tl$lS|1ONPi5n0t%YT&gp3$<{F!a@x8)m+~@|*lzd}zAr!vylW4!yvz6K<+P zzA*Wet3<@mK}sf @t(|zCW5MKE%P=j<#9ZG(W~RC}hBgG#Y8ZU@>vHfhZO-o$QK=$Qv>< zn3wYhk}pdv-tW0LQWNgrcz?`3587=g$yXIE7(t|d)zNzUcq195f--%PE@V#f zycrD&bFW1k%FG6`2bC+ C0H|+o9VzHz{@7lT}ZmNn861R7rp2M>N3WIRHS@O*Z zB}ikv1o_OKSRD@OD&NkNecTv-yP&A_iG_Vk)nx>Q>>3_$h6J2CoN$o14l95YS-eLC z+tY3 45akvMaqTe3bc^+Ykrw$6p9Y9b#Vf{e?mk1UeF|_wqsNr3>!VT@m6>4~A zu5k^DtAHVmZPxSg;dXTs7{q}OVBR;6;lK(G7S_GasEF-aHTjQ16leK=#Qo0p#y<}X zy=oa={8)>vADJGZLP0zYKa1Zs$G-Zy&0+6!omjba*Zg+(`BQ6f>h_6z8^Kqk?pe0m zXCl{V
Vk%jzcB zE2^3Yn(avbL!R>5qneSzq9v-=k-89~_vy!-uvg)-QN8tqgY2yZ%%GQOBS8$}c$ucf zeJxKse60e7I|}O_14|-gQ{=f3$! DwSj7f^THLaK(XU-WJ6gPF zTWhFR((S~WE^cxMP{*_Qix;P-$>j)!;|~*&!*tL$AE)SbJH9ff)1!N6vO+K|cF!QP z4mAIf>0d;VCb68P&Kd1Nqzg3#fBdE#tJ>uJB_m<&bN1MDMV9Miytl-zX(8kkdTVNC zSW(49 !?LnD%ZxiI27dJiTDk{B&$4bx(jwmp!lndM_l1gQ<_SxIXMardk&LFA}G z=)PkGptwP}P!M_Jzy9@{u}U2B4egTVGd-)Kr$Y}Za?W5=FtL-jZ&?8@^MQ7~NjXD9 zvGUybf_2$+T#T>K1L?V}4#+(mntsTdK4T#5$m#>_*q}OpOc;SYo~!Aj@uEK?nZwWh z&;f~}V(ykbfEXd;@4+OYZX!y~C(D(`z~W3QhZ#uxbL HpX(e-7^}02@c#`5ahL;y zRJrM3n*HH#NrZ7AL4qn5E33w`97yEQ{mfvL97l7s)K;9xLrVUthWr5JxwYt?RjedN z#Z@hYj{80Bg&?Tc#N=+1p=(O60Dq11=`Jv$$69KCEvwrRL>Yjy7u=&jZW@!^L)E z4d>TJKFE`Mtad=TsHqr5Mnx5=j1)yj`yNJe$Hd4S+SDIeS>&WERL{1jPawH8u}{lS z&RlFmh}g>TA78wY>OZ-7x75SD$o3q@rto~K#0W3CSQQ&YkiIIS2QQsY#o^#Z-_PaM z;ANM8x`$ R&WP$Kl8gFC{Xlr6l+8ypZTEm%gdCWNTrRCm(zx*8NADppHmmPN z;>IM&hX5|Jz5NgmSq)lpaR6;35 feQUd> zZpON|?O&(+Y`fR_KK(%q(;gUoY#Zj(tse6*ARy1EwSC&v!M5g)s%{cnL%u1JpGn*5 ztkdh$8kev=K-C@!K71>izebS*YfC;NGC58(Frn;k*>f{)%+ZAA^i%dRF-AXUpJ`%$ zl>RPWT$dQBe`LdfJ|{-%pDB|1H~IQ{THYr{?BBEMIX11Sq++$W@Q7aXgiZFh=sxoW zqsSif1)tdd@&%#4XTsW&qV$g>JirTD|D0$&(6rj?-?BqmI`!|IP?r>={}4SLON-Ng zW^71J$$$Ercy-CK`boULD!%DWgdW*{aL80~>ewTfbCeS3h|kmdDNR~Gr%CJYabuVB zr2Y{(fH}|VpV7yB=Xs?um^shw-xKEcABn_T=h^*d %!(#u-TSwUbm^+zzjNPGB+KqU#Gc)B?czVPzS6s9 zQsl=2$OrnAEIW|{>c)PEP4H+5TI3jD=92wQEKf_OX|kWvqVx0rWA5Fy<2JHw!C%21 z-4FKZ4cd~+uG)U7O;ME0b3}=MMN*|*`-KC{3?^YAfh+(?Dn0tapK)r8?$`b>e@Vw$ zaX|zSS0s?i2Z@P@SaYtp-&Y)$IzJqjI)6GYb$&c9b$&W7b^d(!vRT2|u;WqbFLys2 zhf31aggl=7HMP;t3xDOFqEqJXIOd0nLTpBOL<$|p{7+HnNM?MBM#nIJ$5Yffl3AUi z(NWCflv@K|yZzy}2)@62@%4xBLYWuGq|D1>Qs#$aQsz&`q|A@Uq|8spqzoOImdj&N zM!z+2B#mFE)Ugc0hKe1}^1MO0BN> `OrN70ZVvQ1q7mm% zw OmlDt9a+&!J{VH254UcP!&idG-J6w`Qoyacpr*ZC)IeHZPA# zn;(u!n?D_uHa{MfHb=3!eI#2H$Fo0iJew28vomo#+Y-mKCviM~8xqH}8*w~a5y!U= zah#hF<{gM*)9N^;fk(RUaEzM{N4n#1l-mu*v!;Jk3;IX3ntxPF`A4;me^iV3N40`~ zRLl3>+Wj#M&bTsvx%;6$8fA`auz0Ln2uHhraI~8T$GdZIq}v9^yJv8$8wSU+TOhUy zj-jCv8wJPEHi>P2f@5fo#3sQ}v_N8yAUl#QI+AuqY!6J=v^ d7hlaVqpRSuU|LL_kx&<=sP03i(R2t=XN7tg6>@^BgQf zhlmW^MHD>7+A{@7UKV*tW=}7CXO=(Ken_r68oSSjiQPkgUhv0i=cHPbWuDDiBC2{x zYL8{;DR?&9&4#pOdB zvi?He1a((2?+miNxFm zz9X7@Sn~nrc2_vnn j=?c z{)Rn7i&@%812Os1*4bg=IOoE$iEf_dWdqY=*1#gw-G XsG1z5wS3TS{+xuogH79j56HnZMrZEhE zb@qIh$Bk`A(Tthvk0XjYzBGmc4=!ah#v$rt)M$dLylbn?jIoG6cr}hD{>arR9#+}A zXRoK_h@EBZ1wU8YIDV|UAJK?`Y8+wMN>n^%;Of&z;FJ04-l!e35fstOOCvZ&E%1!s znWxf493L17Jh$TW6`{Qj3j|VKHmhlWCt(6`rU_UFKlS8GB2Pc@lF)NZx+M5)6D}je z43jOLXU2(^B$~Kskhrr