From 363d6f9fa252f748ed1aff2937828dd1f5c92cca Mon Sep 17 00:00:00 2001 From: Griatch Date: Sat, 28 Nov 2020 23:23:09 +0100 Subject: [PATCH] Updated HTML docs --- docs/0.9.5/.buildinfo | 2 +- .../evennia/commands/default/help.html | 27 +- .../evennia/commands/default/system.html | 2 +- .../_modules/evennia/objects/objects.html | 4 +- .../_modules/evennia/prototypes/spawner.html | 20 +- .../evennia/server/serversession.html | 6 +- .../_modules/evennia/server/session.html | 2 +- .../evennia/server/sessionhandler.html | 13 +- docs/0.9.5/_modules/evennia/utils/utils.html | 9 +- .../api/evennia.commands.default.account.html | 4 +- .../api/evennia.commands.default.admin.html | 4 +- ...evennia.commands.default.batchprocess.html | 4 +- .../evennia.commands.default.building.html | 8 +- .../api/evennia.commands.default.comms.html | 12 +- .../api/evennia.commands.default.general.html | 16 +- .../api/evennia.commands.default.system.html | 12 +- .../evennia.commands.default.unloggedin.html | 12 +- docs/0.9.5/api/evennia.contrib.barter.html | 4 +- docs/0.9.5/api/evennia.contrib.chargen.html | 4 +- docs/0.9.5/api/evennia.contrib.clothing.html | 4 +- .../api/evennia.contrib.email_login.html | 12 +- .../api/evennia.contrib.extended_room.html | 4 +- docs/0.9.5/api/evennia.contrib.rpsystem.html | 8 +- .../evennia.contrib.turnbattle.tb_basic.html | 4 +- .../evennia.contrib.turnbattle.tb_equip.html | 4 +- .../evennia.contrib.turnbattle.tb_items.html | 4 +- .../evennia.contrib.turnbattle.tb_magic.html | 4 +- .../evennia.contrib.turnbattle.tb_range.html | 4 +- ...b.tutorial_examples.cmdset_red_button.html | 16 +- ...vennia.contrib.tutorial_world.objects.html | 12 +- .../evennia.contrib.tutorial_world.rooms.html | 12 +- docs/0.9.5/api/evennia.objects.objects.html | 4 +- docs/0.9.5/api/evennia.utils.eveditor.html | 4 +- docs/0.9.5/api/evennia.utils.evmore.html | 4 +- docs/0.9.5/api/evennia.utils.utils.html | 41 +- docs/0.9.5/genindex.html | 2 + docs/0.9.5/objects.inv | Bin 73226 -> 73230 bytes docs/0.9.5/searchindex.js | 2 +- docs/1.0-dev/.buildinfo | 2 +- .../Components/Components-Overview.html | 2 +- docs/1.0-dev/Components/Objects.html | 2 +- ...er-and-Prototypes.html => Prototypes.html} | 6 +- ...-voice-operated-elevator-using-events.html | 24 +- docs/1.0-dev/Contribs/Building-menus.html | 24 +- docs/1.0-dev/Contribs/Contrib-Overview.html | 27 +- docs/1.0-dev/Contribs/Crafting.html | 365 ++++ .../1.0-dev/Contribs/Dialogues-in-events.html | 24 +- .../1.0-dev/Contribs/Dynamic-In-Game-Map.html | 24 +- docs/1.0-dev/Contribs/Static-In-Game-Map.html | 24 +- docs/1.0-dev/Evennia-API.html | 2 +- .../Part1/Evennia-Library-Overview.html | 2 +- .../Starting/Part1/Gamedir-Overview.html | 2 +- docs/1.0-dev/Links.html | 10 +- .../evennia/commands/default/help.html | 27 +- .../evennia/commands/default/system.html | 2 +- .../evennia/contrib/crafting/crafting.html | 1157 +++++++++++ .../contrib/crafting/example_recipes.html | 397 ++++ .../evennia/contrib/crafting/tests.html | 779 +++++++ .../evennia/contrib/evscaperoom/commands.html | 876 ++++++++ .../evennia/contrib/evscaperoom/menu.html | 449 ++++ .../evennia/contrib/evscaperoom/objects.html | 1176 +++++++++++ .../evennia/contrib/evscaperoom/room.html | 335 +++ .../evennia/contrib/evscaperoom/state.html | 403 ++++ .../evennia/contrib/evscaperoom/tests.html | 400 ++++ .../evennia/contrib/evscaperoom/utils.html | 290 +++ .../_modules/evennia/objects/objects.html | 4 +- .../_modules/evennia/prototypes/spawner.html | 20 +- .../evennia/server/serversession.html | 6 +- .../_modules/evennia/server/session.html | 2 +- .../evennia/server/sessionhandler.html | 13 +- .../1.0-dev/_modules/evennia/utils/utils.html | 9 +- docs/1.0-dev/_modules/index.html | 10 + .../Components/Components-Overview.md.txt | 2 +- .../_sources/Components/Objects.md.txt | 2 +- ...nd-Prototypes.md.txt => Prototypes.md.txt} | 2 +- .../_sources/Contribs/Contrib-Overview.md.txt | 32 + .../1.0-dev/_sources/Contribs/Crafting.md.txt | 214 ++ docs/1.0-dev/_sources/Evennia-API.md.txt | 2 +- .../Part1/Evennia-Library-Overview.md.txt | 2 +- .../Starting/Part1/Gamedir-Overview.md.txt | 2 +- .../evennia.contrib.crafting.crafting.rst.txt | 7 + ...a.contrib.crafting.example_recipes.rst.txt | 7 + .../api/evennia.contrib.crafting.rst.txt | 16 + .../evennia.contrib.crafting.tests.rst.txt | 7 + ...ennia.contrib.evscaperoom.commands.rst.txt | 7 + .../evennia.contrib.evscaperoom.menu.rst.txt | 7 + ...vennia.contrib.evscaperoom.objects.rst.txt | 7 + .../evennia.contrib.evscaperoom.room.rst.txt | 7 + .../api/evennia.contrib.evscaperoom.rst.txt | 21 + ...vennia.contrib.evscaperoom.scripts.rst.txt | 7 + .../evennia.contrib.evscaperoom.state.rst.txt | 7 + .../evennia.contrib.evscaperoom.tests.rst.txt | 7 + .../evennia.contrib.evscaperoom.utils.rst.txt | 7 + .../_sources/api/evennia.contrib.rst.txt | 2 + docs/1.0-dev/_sources/toc.md.txt | 3 +- docs/1.0-dev/api/evennia-api.html | 26 + .../api/evennia.commands.default.admin.html | 4 +- .../evennia.commands.default.building.html | 12 +- .../api/evennia.commands.default.comms.html | 12 +- .../api/evennia.commands.default.general.html | 12 +- .../api/evennia.commands.default.system.html | 12 +- .../evennia.commands.default.unloggedin.html | 12 +- docs/1.0-dev/api/evennia.contrib.barter.html | 4 +- .../evennia.contrib.crafting.crafting.html | 901 ++++++++ ...nnia.contrib.crafting.example_recipes.html | 466 +++++ .../1.0-dev/api/evennia.contrib.crafting.html | 116 ++ .../api/evennia.contrib.crafting.tests.html | 313 +++ .../api/evennia.contrib.email_login.html | 12 +- .../evennia.contrib.evscaperoom.commands.html | 1053 ++++++++++ .../api/evennia.contrib.evscaperoom.html | 112 + .../api/evennia.contrib.evscaperoom.menu.html | 210 ++ .../evennia.contrib.evscaperoom.objects.html | 1830 +++++++++++++++++ .../api/evennia.contrib.evscaperoom.room.html | 289 +++ .../evennia.contrib.evscaperoom.scripts.html | 100 + .../evennia.contrib.evscaperoom.state.html | 286 +++ .../evennia.contrib.evscaperoom.tests.html | 226 ++ .../evennia.contrib.evscaperoom.utils.html | 218 ++ docs/1.0-dev/api/evennia.contrib.html | 26 + ...vennia.contrib.ingame_python.commands.html | 4 +- .../1.0-dev/api/evennia.contrib.rpsystem.html | 8 +- ...b.tutorial_examples.cmdset_red_button.html | 16 +- ...vennia.contrib.tutorial_world.objects.html | 12 +- .../evennia.contrib.tutorial_world.rooms.html | 8 +- docs/1.0-dev/api/evennia.html | 26 + docs/1.0-dev/api/evennia.objects.objects.html | 4 +- docs/1.0-dev/api/evennia.utils.eveditor.html | 4 +- docs/1.0-dev/api/evennia.utils.evmore.html | 4 +- docs/1.0-dev/api/evennia.utils.utils.html | 41 +- docs/1.0-dev/genindex.html | 1523 +++++++++++++- docs/1.0-dev/objects.inv | Bin 78766 -> 83178 bytes docs/1.0-dev/py-modindex.html | 60 + docs/1.0-dev/searchindex.js | 2 +- docs/1.0-dev/toc.html | 3 +- docs/index.html | 72 +- 134 files changed, 15246 insertions(+), 375 deletions(-) rename docs/1.0-dev/Components/{Spawner-and-Prototypes.html => Prototypes.html} (99%) create mode 100644 docs/1.0-dev/Contribs/Crafting.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/crafting/crafting.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/crafting/example_recipes.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/crafting/tests.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/evscaperoom/commands.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/evscaperoom/menu.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/evscaperoom/objects.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/evscaperoom/room.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/evscaperoom/state.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/evscaperoom/tests.html create mode 100644 docs/1.0-dev/_modules/evennia/contrib/evscaperoom/utils.html rename docs/1.0-dev/_sources/Components/{Spawner-and-Prototypes.md.txt => Prototypes.md.txt} (99%) create mode 100644 docs/1.0-dev/_sources/Contribs/Crafting.md.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.crafting.crafting.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.crafting.example_recipes.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.crafting.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.crafting.tests.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.commands.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.menu.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.objects.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.room.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.scripts.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.state.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.tests.rst.txt create mode 100644 docs/1.0-dev/_sources/api/evennia.contrib.evscaperoom.utils.rst.txt create mode 100644 docs/1.0-dev/api/evennia.contrib.crafting.crafting.html create mode 100644 docs/1.0-dev/api/evennia.contrib.crafting.example_recipes.html create mode 100644 docs/1.0-dev/api/evennia.contrib.crafting.html create mode 100644 docs/1.0-dev/api/evennia.contrib.crafting.tests.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.commands.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.menu.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.objects.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.room.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.scripts.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.state.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.tests.html create mode 100644 docs/1.0-dev/api/evennia.contrib.evscaperoom.utils.html mode change 100644 => 120000 docs/index.html diff --git a/docs/0.9.5/.buildinfo b/docs/0.9.5/.buildinfo index 75cecdbba5..0dac7a1574 100644 --- a/docs/0.9.5/.buildinfo +++ b/docs/0.9.5/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 378b1a0a93b4c3d12133ec069d4e0524 +config: 027fe55ce70fe38d74ad6d0917db143e tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/0.9.5/_modules/evennia/commands/default/help.html b/docs/0.9.5/_modules/evennia/commands/default/help.html index d28c0e8586..196bbfe69b 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/help.html +++ b/docs/0.9.5/_modules/evennia/commands/default/help.html @@ -209,19 +209,20 @@ Returns the formatted string, ready to be sent. """ - string = _SEP + "\n" - if title: - string += "|CHelp for |w%s|n" % title - if aliases: - string += " |C(aliases: %s|C)|n" % ("|C,|n ".join("|w%s|n" % ali for ali in aliases)) - if help_text: - string += "\n%s" % dedent(help_text.rstrip()) - if suggested: - string += "\n\n|CSuggested:|n " - string += "%s" % fill("|C,|n ".join("|w%s|n" % sug for sug in suggested)) - string.strip() - string += "\n" + _SEP - return string + start = f"{_SEP}\n" + title = f"|CHelp for |w{title}|n" if title else "" + aliases = ( + " |C(aliases: {}|C)|n".format("|C,|n ".join(f"|w{ali}|n" for ali in aliases)) + if aliases else "") + help_text = ( + f"\n{dedent(help_text.rstrip())}"if help_text else "") + suggested = ( + "\n\n|CSuggested:|n {}".format( + fill("|C,|n ".join(f"|w{sug}|n" for sug in suggested))) + if suggested else "") + end = f"\n{_SEP}" + + return "".join((start, title, aliases, help_text, suggested, end))
[docs] def format_help_list(self, hdict_cmds, hdict_db): """ diff --git a/docs/0.9.5/_modules/evennia/commands/default/system.html b/docs/0.9.5/_modules/evennia/commands/default/system.html index eed9cc3915..c1ad4199a8 100644 --- a/docs/0.9.5/_modules/evennia/commands/default/system.html +++ b/docs/0.9.5/_modules/evennia/commands/default/system.html @@ -997,7 +997,7 @@ "|wIn-Game time", "|wReal time x %g" % gametime.TIMEFACTOR, align="l", - width=77, + width=78, border_top=0, ) epochtxt = "Epoch (%s)" % ("from settings" if settings.TIME_GAME_EPOCH else "server start") diff --git a/docs/0.9.5/_modules/evennia/objects/objects.html b/docs/0.9.5/_modules/evennia/objects/objects.html index 72ffe70c0e..aa1298746f 100644 --- a/docs/0.9.5/_modules/evennia/objects/objects.html +++ b/docs/0.9.5/_modules/evennia/objects/objects.html @@ -446,7 +446,9 @@ to search. Note that this is used to query the *contents* of a location and will not match for the location itself - if you want that, don't set this or use `candidates` to specify - exactly which objects should be searched. + exactly which objects should be searched. If this nor candidates are + given, candidates will include caller's inventory, current location and + all objects in the current location. attribute_name (str): Define which property to search. If set, no key+alias search will be performed. This can be used to search database fields (db_ will be automatically diff --git a/docs/0.9.5/_modules/evennia/prototypes/spawner.html b/docs/0.9.5/_modules/evennia/prototypes/spawner.html index bbf5950da0..ebef01ebc0 100644 --- a/docs/0.9.5/_modules/evennia/prototypes/spawner.html +++ b/docs/0.9.5/_modules/evennia/prototypes/spawner.html @@ -956,8 +956,15 @@ val = prot.pop("location", None) create_kwargs["db_location"] = init_spawn_value(val, value_to_obj) - val = prot.pop("home", settings.DEFAULT_HOME) - create_kwargs["db_home"] = init_spawn_value(val, value_to_obj) + val = prot.pop("home", None) + if val: + create_kwargs["db_home"] = init_spawn_value(val, value_to_obj) + else: + try: + create_kwargs["db_home"] = init_spawn_value(settings.DEFAULT_HOME, value_to_obj) + except ObjectDB.DoesNotExist: + # settings.DEFAULT_HOME not existing is common for unittests + pass val = prot.pop("destination", None) create_kwargs["db_destination"] = init_spawn_value(val, value_to_obj) @@ -975,8 +982,8 @@ val = prot.pop("tags", []) tags = [] - for (tag, category, data) in val: - tags.append((init_spawn_value(tag, str), category, data)) + for (tag, category, *data) in val: + tags.append((init_spawn_value(tag, str), category, data[0] if data else None)) prototype_key = prototype.get("prototype_key", None) if prototype_key: @@ -996,8 +1003,9 @@ # the rest are attribute tuples (attrname, value, category, locks) val = make_iter(prot.pop("attrs", [])) attributes = [] - for (attrname, value, category, locks) in val: - attributes.append((attrname, init_spawn_value(value), category, locks)) + for (attrname, value, *rest) in val: + attributes.append((attrname, init_spawn_value(value), + rest[0] if rest else None, rest[1] if len(rest) > 1 else None)) simple_attributes = [] for key, value in ( diff --git a/docs/0.9.5/_modules/evennia/server/serversession.html b/docs/0.9.5/_modules/evennia/server/serversession.html index 957fbe2b8f..bb3e7b1956 100644 --- a/docs/0.9.5/_modules/evennia/server/serversession.html +++ b/docs/0.9.5/_modules/evennia/server/serversession.html @@ -52,7 +52,7 @@ from django.conf import settings from evennia.comms.models import ChannelDB from evennia.utils import logger -from evennia.utils.utils import make_iter, lazy_property +from evennia.utils.utils import make_iter, lazy_property, class_from_module from evennia.commands.cmdsethandler import CmdSetHandler from evennia.server.session import Session from evennia.scripts.monitorhandler import MONITOR_HANDLER @@ -66,13 +66,15 @@ # i18n from django.utils.translation import gettext as _ +_BASE_SESSION_CLASS = class_from_module(settings.BASE_SESSION_CLASS) + # ------------------------------------------------------------- # Server Session # ------------------------------------------------------------- -
[docs]class ServerSession(Session): +
[docs]class ServerSession(_BASE_SESSION_CLASS): """ This class represents an account's session and is a template for individual protocols to communicate with Evennia. diff --git a/docs/0.9.5/_modules/evennia/server/session.html b/docs/0.9.5/_modules/evennia/server/session.html index 5551a0f536..a557bb513d 100644 --- a/docs/0.9.5/_modules/evennia/server/session.html +++ b/docs/0.9.5/_modules/evennia/server/session.html @@ -53,7 +53,7 @@ # ------------------------------------------------------------ -
[docs]class Session(object): +
[docs]class Session: """ This class represents a player's session and is a template for both portal- and server-side sessions. diff --git a/docs/0.9.5/_modules/evennia/server/sessionhandler.html b/docs/0.9.5/_modules/evennia/server/sessionhandler.html index 9eacfa2e98..24127ec819 100644 --- a/docs/0.9.5/_modules/evennia/server/sessionhandler.html +++ b/docs/0.9.5/_modules/evennia/server/sessionhandler.html @@ -59,7 +59,7 @@ from evennia.commands.cmdhandler import CMD_LOGINSTART from evennia.utils.logger import log_trace from evennia.utils.utils import ( - variable_from_module, + variable_from_module, class_from_module, is_iter, make_iter, delay, @@ -116,8 +116,7 @@ global _ServerSession, _AccountDB, _ServerConfig, _ScriptDB if not _ServerSession: # we allow optional arbitrary serversession class for overloading - modulename, classname = settings.SERVER_SESSION_CLASS.rsplit(".", 1) - _ServerSession = variable_from_module(modulename, classname) + _ServerSession = class_from_module(settings.SERVER_SESSION_CLASS) if not _AccountDB: from evennia.accounts.models import AccountDB as _AccountDB if not _ServerConfig: @@ -125,10 +124,10 @@ if not _ScriptDB: from evennia.scripts.models import ScriptDB as _ScriptDB # including once to avoid warnings in Python syntax checkers - assert _ServerSession - assert _AccountDB - assert _ServerConfig - assert _ScriptDB
+ assert _ServerSession, "ServerSession class could not load" + assert _AccountDB, "AccountDB class could not load" + assert _ServerConfig, "ServerConfig class could not load" + assert _ScriptDB, "ScriptDB class c ould not load"
# ----------------------------------------------------------- diff --git a/docs/0.9.5/_modules/evennia/utils/utils.html b/docs/0.9.5/_modules/evennia/utils/utils.html index 97c64de620..d5b9e33b10 100644 --- a/docs/0.9.5/_modules/evennia/utils/utils.html +++ b/docs/0.9.5/_modules/evennia/utils/utils.html @@ -385,7 +385,7 @@ return "\n".join(rows)
-
[docs]def iter_to_string(initer, endsep="and", addquote=False): +
[docs]def iter_to_str(initer, endsep="and", addquote=False): """ This pretty-formats an iterable list as string output, adding an optional alternative separator to the second to last entry. If `addquote` @@ -432,8 +432,9 @@ return ", ".join(str(v) for v in initer[:-1]) + "%s %s" % (endsep, initer[-1])
-# legacy alias -list_to_string = iter_to_string +# legacy aliases +list_to_string = iter_to_str +iter_to_string = iter_to_str
[docs]def wildcard_to_regexp(instring): @@ -1452,7 +1453,7 @@
[docs]def class_from_module(path, defaultpaths=None): """ - Return a class from a module, given the module's path. This is + Return a class from a module, given the class' full python path. This is primarily used to convert db_typeclass_path:s to classes. Args: diff --git a/docs/0.9.5/api/evennia.commands.default.account.html b/docs/0.9.5/api/evennia.commands.default.account.html index cf3b8fa387..d45c4de576 100644 --- a/docs/0.9.5/api/evennia.commands.default.account.html +++ b/docs/0.9.5/api/evennia.commands.default.account.html @@ -69,7 +69,7 @@ method. Otherwise all text will be returned to all connected sessions.

-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -100,7 +100,7 @@ method. Otherwise all text will be returned to all connected sessions.

-search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', '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': 'ls l', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
diff --git a/docs/0.9.5/api/evennia.commands.default.admin.html b/docs/0.9.5/api/evennia.commands.default.admin.html index 0374ccfb4e..5fb1ec3a32 100644 --- a/docs/0.9.5/api/evennia.commands.default.admin.html +++ b/docs/0.9.5/api/evennia.commands.default.admin.html @@ -253,7 +253,7 @@ to accounts respectively.

-aliases = ['pemit', 'remit']
+aliases = ['remit', 'pemit']
@@ -284,7 +284,7 @@ to accounts respectively.

-search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.commands.default.batchprocess.html b/docs/0.9.5/api/evennia.commands.default.batchprocess.html index 049127d046..24e00c7fb1 100644 --- a/docs/0.9.5/api/evennia.commands.default.batchprocess.html +++ b/docs/0.9.5/api/evennia.commands.default.batchprocess.html @@ -74,7 +74,7 @@ skipping, reloading etc.

-aliases = ['batchcmd', 'batchcommand']
+aliases = ['batchcommand', 'batchcmd']
@@ -105,7 +105,7 @@ skipping, reloading etc.

-search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.commands.default.building.html b/docs/0.9.5/api/evennia.commands.default.building.html index 933a64707c..eb4daa6879 100644 --- a/docs/0.9.5/api/evennia.commands.default.building.html +++ b/docs/0.9.5/api/evennia.commands.default.building.html @@ -528,7 +528,7 @@ You can specify the /force switch to bypass this confirmation.

-aliases = ['del', 'delete']
+aliases = ['delete', 'del']
@@ -569,7 +569,7 @@ You can specify the /force switch to bypass this confirmation.

-search_index_entry = {'aliases': 'del delete', 'category': 'building', 'key': 'destroy', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
+search_index_entry = {'aliases': 'delete del', 'category': 'building', 'key': 'destroy', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
@@ -1267,7 +1267,7 @@ server settings.

-aliases = ['update', 'parent', 'swap', 'type']
+aliases = ['swap', 'parent', 'type', 'update']
@@ -1298,7 +1298,7 @@ server settings.

-search_index_entry = {'aliases': 'update parent swap type', 'category': 'building', 'key': 'typeclass', '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 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.\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': 'swap parent type update', 'category': 'building', 'key': 'typeclass', '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 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.\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 "}
diff --git a/docs/0.9.5/api/evennia.commands.default.comms.html b/docs/0.9.5/api/evennia.commands.default.comms.html index 0bd5232c9c..5bab56ab93 100644 --- a/docs/0.9.5/api/evennia.commands.default.comms.html +++ b/docs/0.9.5/api/evennia.commands.default.comms.html @@ -63,7 +63,7 @@ aliases to an already joined channel.

-aliases = ['chanalias', 'aliaschan']
+aliases = ['aliaschan', 'chanalias']
@@ -94,7 +94,7 @@ aliases to an already joined channel.

-search_index_entry = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'tags': '', 'text': '\n add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}
+search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'tags': '', 'text': '\n add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}
@@ -120,7 +120,7 @@ for that channel.

-aliases = ['delaliaschan', 'delchanalias']
+aliases = ['delchanalias', 'delaliaschan']
@@ -151,7 +151,7 @@ for that channel.

-search_index_entry = {'aliases': 'delaliaschan delchanalias', 'category': 'comms', 'key': 'delcom', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}
+search_index_entry = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}
@@ -233,7 +233,7 @@ Use addcom/delcom to join and leave channels

-aliases = ['chanlist', 'all channels', 'comlist', 'clist', 'channellist']
+aliases = ['channellist', 'all channels', 'chanlist', 'clist', 'comlist']
@@ -264,7 +264,7 @@ Use addcom/delcom to join and leave channels

-search_index_entry = {'aliases': 'chanlist all channels comlist clist channellist', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}
+search_index_entry = {'aliases': 'channellist all channels chanlist clist comlist', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}
diff --git a/docs/0.9.5/api/evennia.commands.default.general.html b/docs/0.9.5/api/evennia.commands.default.general.html index edcc27829a..0db832f71e 100644 --- a/docs/0.9.5/api/evennia.commands.default.general.html +++ b/docs/0.9.5/api/evennia.commands.default.general.html @@ -111,7 +111,7 @@ look *<account&g
-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -142,7 +142,7 @@ look *<account&g
-search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', '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': 'ls l', 'category': 'general', 'key': 'look', '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 '}
@@ -204,7 +204,7 @@ for everyone to use, you need build privileges and the alias command.

-aliases = ['nickname', 'nicks']
+aliases = ['nicks', 'nickname']
@@ -236,7 +236,7 @@ for everyone to use, you need build privileges and the alias command.

-search_index_entry = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}
+search_index_entry = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}
@@ -259,7 +259,7 @@ inv

-aliases = ['inv', 'i']
+aliases = ['i', 'inv']
@@ -290,7 +290,7 @@ inv

-search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
+search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
@@ -534,7 +534,7 @@ placing it in their inventory.

-aliases = ["'", '"']
+aliases = ['"', "'"]
@@ -560,7 +560,7 @@ placing it in their inventory.

-search_index_entry = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
+search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
diff --git a/docs/0.9.5/api/evennia.commands.default.system.html b/docs/0.9.5/api/evennia.commands.default.system.html index 5eacb3b685..9477bcadd8 100644 --- a/docs/0.9.5/api/evennia.commands.default.system.html +++ b/docs/0.9.5/api/evennia.commands.default.system.html @@ -313,7 +313,7 @@ required since whole classes of scripts often have the same name.

-aliases = ['listscripts', 'globalscript']
+aliases = ['globalscript', 'listscripts']
@@ -349,7 +349,7 @@ required since whole classes of scripts often have the same name.

-search_index_entry = {'aliases': 'listscripts globalscript', 'category': 'system', 'key': 'scripts', 'tags': '', 'text': '\n list and manage all running scripts\n\n Usage:\n scripts[/switches] [#dbref, key, script.path or <obj>]\n\n Switches:\n start - start a script (must supply a script path)\n stop - stops an existing script\n kill - kills a script - without running its cleanup hooks\n validate - run a validation on the script(s)\n\n If no switches are given, this command just views all active\n scripts. The argument can be either an object, at which point it\n will be searched for all scripts defined on it, or a script name\n or #dbref. For using the /stop switch, a unique script #dbref is\n required since whole classes of scripts often have the same name.\n\n Use script for managing commands on objects.\n '}
+search_index_entry = {'aliases': 'globalscript listscripts', 'category': 'system', 'key': 'scripts', 'tags': '', 'text': '\n list and manage all running scripts\n\n Usage:\n scripts[/switches] [#dbref, key, script.path or <obj>]\n\n Switches:\n start - start a script (must supply a script path)\n stop - stops an existing script\n kill - kills a script - without running its cleanup hooks\n validate - run a validation on the script(s)\n\n If no switches are given, this command just views all active\n scripts. The argument can be either an object, at which point it\n will be searched for all scripts defined on it, or a script name\n or #dbref. For using the /stop switch, a unique script #dbref is\n required since whole classes of scripts often have the same name.\n\n Use script for managing commands on objects.\n '}
@@ -373,7 +373,7 @@ given, <nr> defaults to 10.

-aliases = ['listobjs', 'listobjects', 'stats', 'db']
+aliases = ['listobjs', 'listobjects', 'db', 'stats']
@@ -399,7 +399,7 @@ given, <nr> defaults to 10.

-search_index_entry = {'aliases': 'listobjs listobjects stats db', 'category': 'system', 'key': 'objects', 'tags': '', 'text': '\n statistics on objects in the database\n\n Usage:\n objects [<nr>]\n\n Gives statictics on objects in database as well as\n a list of <nr> latest objects in database. If not\n given, <nr> defaults to 10.\n '}
+search_index_entry = {'aliases': 'listobjs listobjects db stats', 'category': 'system', 'key': 'objects', 'tags': '', 'text': '\n statistics on objects in the database\n\n Usage:\n objects [<nr>]\n\n Gives statictics on objects in database as well as\n a list of <nr> latest objects in database. If not\n given, <nr> defaults to 10.\n '}
@@ -600,7 +600,7 @@ the released memory will instead be re-used by the program.

-aliases = ['serverprocess', 'serverload']
+aliases = ['serverload', 'serverprocess']
@@ -631,7 +631,7 @@ the released memory will instead be re-used by the program.

-search_index_entry = {'aliases': 'serverprocess serverload', 'category': 'system', 'key': 'server', 'tags': '', 'text': "\n show server load and memory statistics\n\n Usage:\n server[/mem]\n\n Switches:\n mem - return only a string of the current memory usage\n flushmem - flush the idmapper cache\n\n This command shows server load statistics and dynamic memory\n usage. It also allows to flush the cache of accessed database\n objects.\n\n Some Important statistics in the table:\n\n |wServer load|n is an average of processor usage. It's usually\n between 0 (no usage) and 1 (100% usage), but may also be\n temporarily higher if your computer has multiple CPU cores.\n\n The |wResident/Virtual memory|n displays the total memory used by\n the server process.\n\n Evennia |wcaches|n all retrieved database entities when they are\n loaded by use of the idmapper functionality. This allows Evennia\n to maintain the same instances of an entity and allowing\n non-persistent storage schemes. The total amount of cached objects\n are displayed plus a breakdown of database object types.\n\n The |wflushmem|n switch allows to flush the object cache. Please\n note that due to how Python's memory management works, releasing\n caches may not show you a lower Residual/Virtual memory footprint,\n the released memory will instead be re-used by the program.\n\n "}
+search_index_entry = {'aliases': 'serverload serverprocess', 'category': 'system', 'key': 'server', 'tags': '', 'text': "\n show server load and memory statistics\n\n Usage:\n server[/mem]\n\n Switches:\n mem - return only a string of the current memory usage\n flushmem - flush the idmapper cache\n\n This command shows server load statistics and dynamic memory\n usage. It also allows to flush the cache of accessed database\n objects.\n\n Some Important statistics in the table:\n\n |wServer load|n is an average of processor usage. It's usually\n between 0 (no usage) and 1 (100% usage), but may also be\n temporarily higher if your computer has multiple CPU cores.\n\n The |wResident/Virtual memory|n displays the total memory used by\n the server process.\n\n Evennia |wcaches|n all retrieved database entities when they are\n loaded by use of the idmapper functionality. This allows Evennia\n to maintain the same instances of an entity and allowing\n non-persistent storage schemes. The total amount of cached objects\n are displayed plus a breakdown of database object types.\n\n The |wflushmem|n switch allows to flush the object cache. Please\n note that due to how Python's memory management works, releasing\n caches may not show you a lower Residual/Virtual memory footprint,\n the released memory will instead be re-used by the program.\n\n "}
diff --git a/docs/0.9.5/api/evennia.commands.default.unloggedin.html b/docs/0.9.5/api/evennia.commands.default.unloggedin.html index 562a21f076..5c9218f731 100644 --- a/docs/0.9.5/api/evennia.commands.default.unloggedin.html +++ b/docs/0.9.5/api/evennia.commands.default.unloggedin.html @@ -58,7 +58,7 @@ connect “account name” “pass word”

-aliases = ['conn', 'con', 'co']
+aliases = ['co', 'conn', 'con']
@@ -93,7 +93,7 @@ there is no object yet before the account has logged in)

-search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', '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': 'co conn con', 'category': 'general', 'key': 'connect', '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 '}
@@ -117,7 +117,7 @@ create “account name” “pass word”

-aliases = ['cre', 'cr']
+aliases = ['cr', 'cre']
@@ -148,7 +148,7 @@ create “account name” “pass word”

-search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
@@ -271,7 +271,7 @@ for simplicity. It shows a pane of info.

-aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -297,7 +297,7 @@ for simplicity. It shows a pane of info.

-search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.barter.html b/docs/0.9.5/api/evennia.contrib.barter.html index 68289e51cb..2e408bd15e 100644 --- a/docs/0.9.5/api/evennia.contrib.barter.html +++ b/docs/0.9.5/api/evennia.contrib.barter.html @@ -680,7 +680,7 @@ try to influence the other part in the deal.

-aliases = ['deal', 'offers']
+aliases = ['offers', 'deal']
@@ -706,7 +706,7 @@ try to influence the other part in the deal.

-search_index_entry = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
+search_index_entry = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
diff --git a/docs/0.9.5/api/evennia.contrib.chargen.html b/docs/0.9.5/api/evennia.contrib.chargen.html index 721d1849cb..05a3755f78 100644 --- a/docs/0.9.5/api/evennia.contrib.chargen.html +++ b/docs/0.9.5/api/evennia.contrib.chargen.html @@ -76,7 +76,7 @@ at them with this command.

-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -108,7 +108,7 @@ that is checked by the @ic command directly.

-search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n ooc look\n\n Usage:\n look\n look <character>\n\n This is an OOC version of the look command. Since an Account doesn\'t\n have an in-game existence, there is no concept of location or\n "self".\n\n If any characters are available for you to control, you may look\n at them with this command.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n ooc look\n\n Usage:\n look\n look <character>\n\n This is an OOC version of the look command. Since an Account doesn\'t\n have an in-game existence, there is no concept of location or\n "self".\n\n If any characters are available for you to control, you may look\n at them with this command.\n '}
diff --git a/docs/0.9.5/api/evennia.contrib.clothing.html b/docs/0.9.5/api/evennia.contrib.clothing.html index 62a5754c13..fcf529aff1 100644 --- a/docs/0.9.5/api/evennia.contrib.clothing.html +++ b/docs/0.9.5/api/evennia.contrib.clothing.html @@ -627,7 +627,7 @@ inv

-aliases = ['inv', 'i']
+aliases = ['i', 'inv']
@@ -658,7 +658,7 @@ inv

-search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
+search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}
diff --git a/docs/0.9.5/api/evennia.contrib.email_login.html b/docs/0.9.5/api/evennia.contrib.email_login.html index 95c4660a36..9b3a5fd795 100644 --- a/docs/0.9.5/api/evennia.contrib.email_login.html +++ b/docs/0.9.5/api/evennia.contrib.email_login.html @@ -73,7 +73,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.

-aliases = ['conn', 'con', 'co']
+aliases = ['co', 'conn', 'con']
@@ -103,7 +103,7 @@ there is no object yet before the account has logged in)

-search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', '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': 'co conn con', 'category': 'general', 'key': 'connect', '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 '}
@@ -125,7 +125,7 @@ there is no object yet before the account has logged in)

-aliases = ['cre', 'cr']
+aliases = ['cr', 'cre']
@@ -161,7 +161,7 @@ name enclosed in quotes:

-search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
+search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
@@ -269,7 +269,7 @@ for simplicity. It shows a pane of info.

-aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -295,7 +295,7 @@ for simplicity. It shows a pane of info.

-search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', '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', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
diff --git a/docs/0.9.5/api/evennia.contrib.extended_room.html b/docs/0.9.5/api/evennia.contrib.extended_room.html index 76d742f2a6..d5131ae83f 100644 --- a/docs/0.9.5/api/evennia.contrib.extended_room.html +++ b/docs/0.9.5/api/evennia.contrib.extended_room.html @@ -275,7 +275,7 @@ look *<account&g
-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -295,7 +295,7 @@ look *<account&g
-search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', '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': 'ls l', 'category': 'general', 'key': 'look', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.rpsystem.html b/docs/0.9.5/api/evennia.contrib.rpsystem.html index 227c7ab0cc..030b866466 100644 --- a/docs/0.9.5/api/evennia.contrib.rpsystem.html +++ b/docs/0.9.5/api/evennia.contrib.rpsystem.html @@ -635,7 +635,7 @@ a different language.

-aliases = ["'", '"']
+aliases = ['"', "'"]
@@ -661,7 +661,7 @@ a different language.

-search_index_entry = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
+search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
@@ -800,7 +800,7 @@ Using the command without arguments will list all current recogs.

-aliases = ['recognize', 'forget']
+aliases = ['forget', 'recognize']
@@ -827,7 +827,7 @@ Using the command without arguments will list all current recogs.

-search_index_entry = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}
+search_index_entry = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_basic.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_basic.html index 1710a7774e..5fde094b73 100644 --- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_basic.html +++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_basic.html @@ -569,7 +569,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -590,7 +590,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html index fdbd7bc5cd..3c0c8f0346 100644 --- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html +++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_equip.html @@ -686,7 +686,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -707,7 +707,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html index a50cd8ac3f..b45eed7451 100644 --- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html +++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_items.html @@ -720,7 +720,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -741,7 +741,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html index 4820c32136..17d6ef53cf 100644 --- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html +++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_magic.html @@ -592,7 +592,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -613,7 +613,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html index cd78f7fc8f..f0dbb89f6f 100644 --- a/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html +++ b/docs/0.9.5/api/evennia.contrib.turnbattle.tb_range.html @@ -1019,7 +1019,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -1040,7 +1040,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', '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', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html b/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html index 885990e29f..adaf104cf0 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_examples.cmdset_red_button.html @@ -109,7 +109,7 @@ push the lid of the button away.

-aliases = ['press', 'push', 'press button']
+aliases = ['push', 'press', 'press button']
@@ -140,7 +140,7 @@ lid-state respectively.

-search_index_entry = {'aliases': 'press push press button', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
@@ -162,7 +162,7 @@ lid-state respectively.

-aliases = ['smash', 'break lid', 'smash lid']
+aliases = ['smash', 'smash lid', 'break lid']
@@ -189,7 +189,7 @@ of causing the lamp to break.

-search_index_entry = {'aliases': 'smash break lid smash lid', 'category': 'general', 'key': 'smash glass', 'tags': '', 'text': '\n smash glass\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n '}
+search_index_entry = {'aliases': 'smash smash lid break lid', 'category': 'general', 'key': 'smash glass', 'tags': '', 'text': '\n smash glass\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n '}
@@ -210,7 +210,7 @@ of causing the lamp to break.

-aliases = ['open', 'open button']
+aliases = ['open button', 'open']
@@ -236,7 +236,7 @@ of causing the lamp to break.

-search_index_entry = {'aliases': 'open open button', 'category': 'general', 'key': 'open lid', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}
+search_index_entry = {'aliases': 'open button open', 'category': 'general', 'key': 'open lid', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}
@@ -306,7 +306,7 @@ of causing the lamp to break.

-aliases = ['l', 'ex', 'examine', 'feel', 'listen', 'get']
+aliases = ['ex', 'get', 'feel', 'examine', 'listen', 'l']
@@ -332,7 +332,7 @@ of causing the lamp to break.

-search_index_entry = {'aliases': 'l ex examine feel listen get', 'category': 'general', 'key': 'look', '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 "}
+search_index_entry = {'aliases': 'ex get feel examine listen l', 'category': 'general', 'key': 'look', '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 "}
diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html b/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html index 5f54fabb23..60d0db8746 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.objects.html @@ -491,7 +491,7 @@ shift green root up/down

-aliases = ['push', 'move', 'shiftroot', 'pull']
+aliases = ['pull', 'push', 'shiftroot', 'move']
@@ -527,7 +527,7 @@ yellow/green - horizontal roots

-search_index_entry = {'aliases': 'push move shiftroot pull', 'category': 'tutorialworld', 'key': 'shift', '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': 'pull push shiftroot move', 'category': 'tutorialworld', 'key': 'shift', '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 '}
@@ -544,7 +544,7 @@ yellow/green - horizontal roots

-aliases = ['push button', 'button', 'press button']
+aliases = ['button', 'press button', 'push button']
@@ -570,7 +570,7 @@ yellow/green - horizontal roots

-search_index_entry = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}
+search_index_entry = {'aliases': 'button press button push button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}
@@ -714,7 +714,7 @@ parry - forgoes your attack but will make you harder to hit on next

-aliases = ['defend', 'bash', 'slash', 'kill', 'stab', 'chop', 'pierce', 'hit', 'fight', 'thrust', 'parry']
+aliases = ['hit', 'fight', 'chop', 'thrust', 'bash', 'slash', 'kill', 'parry', 'stab', 'defend', 'pierce']
@@ -740,7 +740,7 @@ parry - forgoes your attack but will make you harder to hit on next

-search_index_entry = {'aliases': 'defend bash slash kill stab chop pierce hit fight thrust parry', 'category': 'tutorialworld', 'key': 'attack', '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': 'hit fight chop thrust bash slash kill parry stab defend pierce', 'category': 'tutorialworld', 'key': 'attack', '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 '}
diff --git a/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html b/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html index 1787bf37fc..80acab9669 100644 --- a/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html +++ b/docs/0.9.5/api/evennia.contrib.tutorial_world.rooms.html @@ -183,7 +183,7 @@ code except for adding in the details.

-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -198,7 +198,7 @@ code except for adding in the details.

-search_index_entry = {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', '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': 'ls l', 'category': 'tutorialworld', 'key': 'look', '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 '}
@@ -712,7 +712,7 @@ if they fall off the bridge.

-aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -738,7 +738,7 @@ if they fall off the bridge.

-search_index_entry = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
+search_index_entry = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
@@ -864,7 +864,7 @@ to find something.

-aliases = ['l', 'feel', 'fiddle', 'feel around', 'search']
+aliases = ['fiddle', 'search', 'feel around', 'feel', 'l']
@@ -892,7 +892,7 @@ random chance of eventually finding a light source.

-search_index_entry = {'aliases': 'l feel fiddle feel around search', 'category': 'tutorialworld', 'key': 'look', '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': 'fiddle search feel around feel l', 'category': 'tutorialworld', 'key': 'look', '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 '}
diff --git a/docs/0.9.5/api/evennia.objects.objects.html b/docs/0.9.5/api/evennia.objects.objects.html index a451ec61eb..7559f89a97 100644 --- a/docs/0.9.5/api/evennia.objects.objects.html +++ b/docs/0.9.5/api/evennia.objects.objects.html @@ -345,7 +345,9 @@ for a broader search.

to search. Note that this is used to query the contents of a location and will not match for the location itself - if you want that, don’t set this or use candidates to specify -exactly which objects should be searched.

+exactly which objects should be searched. If this nor candidates are +given, candidates will include caller’s inventory, current location and +all objects in the current location.

  • attribute_name (str) – Define which property to search. If set, no key+alias search will be performed. This can be used to search database fields (db_ will be automatically diff --git a/docs/0.9.5/api/evennia.utils.eveditor.html b/docs/0.9.5/api/evennia.utils.eveditor.html index 3e8cc081d4..254db9773b 100644 --- a/docs/0.9.5/api/evennia.utils.eveditor.html +++ b/docs/0.9.5/api/evennia.utils.eveditor.html @@ -273,7 +273,7 @@ indentation.

    -aliases = [':::', ':!', ':fi', ':', ':h', ':A', ':f', '::', ':w', ':echo', ':fd', ':>', ':r', ':q!', ':p', ':=', ':dd', ':dw', ':q', ':S', ':u', ':wq', ':y', ':x', ':I', ':DD', ':UU', ':uu', ':<', ':i', ':s', ':j']
    +aliases = [':q!', ':w', '::', ':<', ':u', ':dd', ':dw', ':fi', ':uu', ':y', ':s', ':p', ':q', ':f', ':>', ':UU', ':r', ':::', ':j', ':i', ':S', ':!', ':wq', ':x', ':A', ':h', ':echo', ':=', ':', ':I', ':fd', ':DD']
    @@ -301,7 +301,7 @@ efficient presentation.

    -search_index_entry = {'aliases': '::: :! :fi : :h :A :f :: :w :echo :fd :> :r :q! :p := :dd :dw :q :S :u :wq :y :x :I :DD :UU :uu :< :i :s :j', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}
    +search_index_entry = {'aliases': ':q! :w :: :< :u :dd :dw :fi :uu :y :s :p :q :f :> :UU :r ::: :j :i :S :! :wq :x :A :h :echo := : :I :fd :DD', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}
    diff --git a/docs/0.9.5/api/evennia.utils.evmore.html b/docs/0.9.5/api/evennia.utils.evmore.html index b82f66e564..5e496009d6 100644 --- a/docs/0.9.5/api/evennia.utils.evmore.html +++ b/docs/0.9.5/api/evennia.utils.evmore.html @@ -74,7 +74,7 @@ the caller.msg() construct every time the page is updated.

    -aliases = ['end', 'q', 'abort', 'next', 'n', 'b', 'back', 'quit', 'top', 't', 'e', 'a']
    +aliases = ['e', 'a', 'quit', 'q', 'b', 'next', 'back', 'abort', 't', 'end', 'n', 'top']
    @@ -100,7 +100,7 @@ the caller.msg() construct every time the page is updated.

    -search_index_entry = {'aliases': 'end q abort next n b back quit top t e a', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging\n '}
    +search_index_entry = {'aliases': 'e a quit q b next back abort t end n top', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging\n '}
    diff --git a/docs/0.9.5/api/evennia.utils.utils.html b/docs/0.9.5/api/evennia.utils.utils.html index fee31fac22..25f2b00bb4 100644 --- a/docs/0.9.5/api/evennia.utils.utils.html +++ b/docs/0.9.5/api/evennia.utils.utils.html @@ -230,8 +230,8 @@ Defaults to client’s default width.

  • -
    -evennia.utils.utils.iter_to_string(initer, endsep='and', addquote=False)[source]
    +
    +evennia.utils.utils.iter_to_str(initer, endsep='and', addquote=False)[source]

    This pretty-formats an iterable list as string output, adding an optional alternative separator to the second to last entry. If addquote is True, the outgoing strings will be surrounded by quotes.

    @@ -295,6 +295,39 @@ values with double quotes.

    +
    +
    +evennia.utils.utils.iter_to_string(initer, endsep='and', addquote=False)
    +

    This pretty-formats an iterable list as string output, adding an optional +alternative separator to the second to last entry. If addquote +is True, the outgoing strings will be surrounded by quotes.

    +
    +
    Parameters
    +
      +
    • initer (any) – Usually an iterable to print. Each element must be possible to +present with a string. Note that if this is a generator, it will be +consumed by this operation.

    • +
    • endsep (str, optional) – If set, the last item separator will +be replaced with this value.

    • +
    • addquote (bool, optional) – This will surround all outgoing +values with double quotes.

    • +
    +
    +
    Returns
    +

    str – The list represented as a string.

    +
    +
    +

    Examples

    +
    >>> list_to_string([1,2,3], endsep='')
    +'1, 2, 3'
    +>>> list_to_string([1,2,3], ensdep='and')
    +'1, 2 and 3'
    +>>> list_to_string([1,2,3], endsep='and', addquote=True)
    +'"1", "2" and "3"'
    +
    +
    +
    +
    evennia.utils.utils.wildcard_to_regexp(instring)[source]
    @@ -923,7 +956,7 @@ importing directly from path doesn’t work.

    evennia.utils.utils.class_from_module(path, defaultpaths=None)[source]
    -

    Return a class from a module, given the module’s path. This is +

    Return a class from a module, given the class’ full python path. This is primarily used to convert db_typeclass_path:s to classes.

    Parameters
    @@ -945,7 +978,7 @@ try subsequent imports by prepending those paths to path.

    evennia.utils.utils.object_from_module(path, defaultpaths=None)
    -

    Return a class from a module, given the module’s path. This is +

    Return a class from a module, given the class’ full python path. This is primarily used to convert db_typeclass_path:s to classes.

    Parameters
    diff --git a/docs/0.9.5/genindex.html b/docs/0.9.5/genindex.html index 1307552550..5fdba2bed1 100644 --- a/docs/0.9.5/genindex.html +++ b/docs/0.9.5/genindex.html @@ -7944,6 +7944,8 @@
  • itemfunc_heal() (in module evennia.contrib.turnbattle.tb_items)
  • ITEMFUNCS (in module evennia.contrib.turnbattle.tb_items) +
  • +
  • iter_to_str() (in module evennia.utils.utils)
  • iter_to_string() (in module evennia.utils.utils)
  • diff --git a/docs/0.9.5/objects.inv b/docs/0.9.5/objects.inv index d6216c7c4ecf88f8b430d7cc3f93f0c8d35a9348..926ce16a254ac733d2d717181fdc0e684a80e897 100644 GIT binary patch delta 37832 zcmZsCV{{?QCq@wry=}+nksiTN`X_Z*1GPv#~dRx%a;J@0~N}%$%8?n(nTt z`l`O_j_Lr9?EtU!hz7t`V>_7evU0dEZkF@U#xF=7+)|#noYMOGQdU4cn3dMMe{DEu z&S0KbYmzfqM^g;@mo3@n0;17}#v4Jkm}c5+YXbD@G4=1PaDTi6u<~Df^4uGgAg1%i zLie6vKf-l43Oat!(4UB(RvOafkXX!P9hGby- z1~`P1SfE!>Dru!e`eK}5#=A-xe0y3fLH-`H+j}|uMO*|LK{hxb%D3i(=B1X!Jo)C$ z1n%RQqE=QkQu{nTN+swoGexd`GES~-a?V~~@2QFQTaEN1Y6!N)PJi~|rql9`XuGL5 zG&C1Q-|WrEtM9Stj80$BjkYmH7l=%A+sWfual-nLWs%9{(!8ylkG*K@Hdwq-Z#wZ^ zj^++xkIDgZl0iF0f%W=7Gx^p}5>)2yVwc1UoE>?NzfH0(o8;G1#_objbFw{7jki0u zH(khT1%+it%`PfFx^gAVXy^=BEG=UV-@)?Pq@t-T!E?%R8^hmCQag=6Jj#!&uNN$jsHz@5rVa8Ba^*_N|<# zFe<-gFQ4i|FUczvV~&m*LvODwwPlVTXEaSR=@4Pv%cb-p>uMlR9Ka?nTe*23Op@x0 z$z%gq;@(xJl6Fl>S|%`vi&j&-Whw8W+kMa2dt(<}<*i7XbW}6BVp0cC8#bib>c&IG znk?&fkj9>#ryOj_X+06@&_g?@28yVR)O7DW6+$-zTHI!{y!6mCqY5o_g>K7N(wZ); z$-cEv{ykJ0zdM4!^X6h}dPhGlOSTg~io*m-T8jVRbctRco$d)_UmlBk#0FVW9q`n!TGt$=I9EP^_1N$%O zt*Bk>ru#)ILhp&T9n_$%^yBuV^%TEcX<~zIZ@9ABT$gM+xhdOaO3Yh-?Cw}0gU=hd z46$a{-#Rz}00tn4+PkwdaB0`}v3&#GtIg^Pz^K~l{^ZuwL zNs^qVaou9l*TBBnx4`(iuWcst|3qqBn!02g%y{1z#lzye58sf497|WjRCo^U=+44- z^m)O^d{$(o8AhvT$Xjl#149aC(5*h+Fan>vC259mtv22$U5CfH6!5l!Isj&3ii+M~ zNns478i7;v;%eq3wL>N5T`|MV_+CtrP>coFDrpSB5%SPj% zMMy=(pb3+xpn=uA((vuBMI$ZmMz{8cAB!X3UHA2SS@e1hk)(AMaF16}aK5u(iIPMo z67}yq7&Azpwm{z}Pf{9?>k4MEwHoe(SPN0WJh7_jp;cBi{0rG;yWe8uO3cyaN|2l; z@@zkj#p9{P69~;DpOvTo;KV1)YuG`ZY_>V*atr^i@_l|~cb`sM^fX6Ip^Wtb z>&TSZ2Oh1N)vUL+il<~Jm%L7`?cXT*O%83ZvFjb#NqQ0}S~2SadcvzWi}Zw53F%XC zPLQHXiMaS`Uja+BS_nGqdb2C+hqiNbeI%86XwMQU>BFbRNz$56>(8Eal7|6{lbd~% zqG3VNIDDjfzz~lX2aNAlZRzJFoj8k142Ni3Duln-BC(2qMm{NJcNpE!!ea=9J;Aqn zs(uM`^Zja%cX&(*m|m)$0b+AQw5T>6SgZ1Ac)D$I)qKX3ewguR>Tn-1jccyK zUhn=_<(;=cevx`Mu8!QGo%~YR3*|{ff)F&_B1QRDVQRh)h}T%v4I;r_^2gJelm`Zg zh%Q;6t!pI8JgIP-(jO;;xK$>?w$BWWAq#mmWK3UobF+|s?FbhSEZ2;KJ)(DOlWcAn zt{F{%J<0Dk4p)JA!jY9EUh2{b_aLHl{&6K$M#y&uWil_3U^Kk!c-nU-CQ*Q)JH<-1 zq-Jua_-$_uyF)={DEu0{ggAtf4iCDgb$Jr-&s`ROVG>$!!Y?W~69Z@SOogD}i{GDn zA;Acpk}ynGPcKy?DKwSQ#k)R1*+TOYIc+!pO|ik3{%sr-23%Jc|8|nJ&#C%PQKrKI zNU@>-`ThK$`fGi!oAHk&y`Sw~&*0H%5oTC2mW&cf#2Nyv_A=$C) zswYtpQ&Y-(C~n!ivPa|!80|L6LuE*Mh(x z;QClvmu9O(%rNrvAsLiY@2CD^iE)MjJVi$II`GHJg)S=TMz*oPzl*pCK7Xq}#J7GT zZxyqs7Jx}JBtnxWCf%48ZG8@Fa9g*T9om6e`Oai~cuKIFe9rz5DQzBEv`bG{kORT0xccw?$8p>#zt^?`Ii#qb^s|j;*`+|57v6HgV5lY|W%3$Z{TYA(dX%)=zXt<1J?`Kx4pM7c*4IAa6JwET@S3hQL2JmcP%>R^P>xGYm+R?`$ zwCNyiXUKeHf4>Kh%iII>JHXfx4yDe0`nnB-npt9g6dS>V-`4Tjdp-R)esvC(ReB-b z{(aA(Id4ZW5nu_zpa%m^#&-QW^v430&0QG%WiXqFE}RR4fwCv4}Kg|11;L6cU2 zNo(``4C3${N!aRqjBBYQ+6T=r`|7FH*R+gq?d^rvUpO9@NQN_*bwa{e6UZctJcamL z_{G2_N?w*fp8%3Dd4I{auNB462;dfCtt|pc!Mx;Ef9eR%SOnG9wFE~e6Ks)15YNQH zyn5c`Tel%%!H6gL?USE>BcRADsn^(`7l5VKEqb8l?yf29ddpb_F+hDe+#9Cd5bNx) zmKe8&RyW&T@#KEKEBTh3)$uY8(TJK!5O<$JEW|tT!UL$}abURavL-Xr``iAS52qMp z7}~ric?V&Im^Ys$>o?3gKFALg>&tm22~=8p3;eNNh`UC;7cBAb{#y63lSj)DHqNv~ zvTs1_xj#33WpMJ?1{>>h6zw%k@n$vwl`lP|*%7)mt0+J;nPg1F(-uMm2AW*$WUp8N zp5M3mUsL` zr$lB4iKKB=PGt8RQs?9us80;me16fqU&`7^RuMpjh@@C}9TH*^6gy?e_uKht1?|tw z;U5JvrYNVV*eORP&^=ZPN2loZbl-49ug_A$*j#bfEF2z2LE}6bdN*t6w9nH^o(qDk z;AZ~}2o?G_?!al2$y+pUg;Ci&ndIRbIV2C<(`_ullq5D%!WQLRfzFiv>s%7k%N50X zv^qcx0m{?pgqsQ@>n&$&juGbB*(vRh>4$ND+pAYQZeE86Apa@}?x*vwEv$GCgx6*~ zhKGXX@0WMAVFhCkIi--}#BN0^m#!bo+$iZ~XS~eBT!t)6{G~WN0fvq8ELU#N0TZlK zVW%xWmiuqSZw&Tr8=d$uhIrojgOj0ciWk^`Vnpav_#F=>5roFAC4TIpa|-H#G568R ztTI8y&SzYWV2VoTa&xEDY)w&Q(4r}@y*(cIPZ4GAU{D`FwN_EYm?(!%8Q5d~PH^I@ zsya(0rmR(4s&(TS18Fb=1EVXJ0+Vw?`)BXhhS8FI$WBsxkKTOqd5S~;fNMrXn*e00 zVxZ-gk&PE$gPu*a?>@)qO>AtK!MZY?SuM4C^`=hE& zHs`vn3`#=&{4C75dlmiA-7l?Mt?LSO)4N}d%T7fvd-s@tjwiDb>@U6aw zH4lW3n&9X^4)KRf-s0o<6%L#2&jPUc2S`ejEkb=9K|d~i^X~0z_7;`+UY?99a=5EQ z(uHz}&GkwFEi*Ed$sq@WJSQp(%MgYj}5WU z-WHSnyV^bi3tpx=tqE0Q?j|$>P=v8D!G>ReEk@BZK!C!vx3!PBa+Dw!un$y+74J66 zDrkks1(|tf@h0-~k%~o;j%vl{-mBrX!l0z(X(veiWcw6~J1iFQwk6;KJ;;?zW|Y^# z7@|grUIEX5E=3~~!EWP1abt7);Jp~#kGEJ$%P-S?>3SoO^%yRquG?O|QfMaB{+*(E~Q&mLd zcizfRAf3yZV2o(x3A`%_-t7kNv}p6=wtEiGW0)9f2?Acil&upwn2ettFa4n9&#!Bt zu-BO*MKeyQ-`i&3U*3ptMV34RAxO8-wTn_%EyGW4WjLA<`sv+C6!?ACsn|~i_R90P z*`4P`6B}K0zk6(z!8GbP;zlBp#Ow-&pi>SXhBN32ZkqPX_ydVcLA1i$=J_?EuN#>? ziQdIIBc^k%@~_mi>i#XMK;aojcqd}an#XJ?97~vBn67VNCu4*5&JC?ozf{4ynFY1vb2m*nh+Be7e3N$@9{O2B?mKpJd^4Smd?1V@%YItqaT z@M_cIB%FXn^6A=dKPSNmEm%auiQQyoqzSX~N~UYy;a?mHD1d(wP;)TF??2d%P_uml z=vek<>jL>idc`#YE5A9R?c{Dih76d=rb6$Dg&MA#7?&VLN-ZM|(n|cDv64W`PTuiV zG4zW;L4#T!f4luNzF&pXfUct(_r~G=>fh4Q_V#=m#7`A)#^kksG(zUE`IZ#Fn=APs z$x)@CfIR!2SPQ&{gi`KnErGm`m|sN-Y{o@Cs21m{yc0f#`7TxCS)5j_5R#_{7swM1I7DKG(!lA%m4W;As;wvhHMB~yntO|#_{+94mqQB zPg~BPobvI6BN(0em^YBfd}1KgYD(u>Q}d9<0u^DrJZ|nC{9+O6uVCk63g!(-(;!K1 zHBL%#%x^lL;X!k(pCNM2Dus&k_b8veGgEpwCE z{Qhg=MG>4FXK}8~ORhyc7TwdG8R1sg9m!CdYjRFUJvruw0!QP1x2pM#6c}-Mw?a1>Uii72ry%sRtDL`ONQ|F@%gC9-&K*$8{_>E z^^>BbvX)WuDwc(z$w=DQKwhv}4SLdm`&oD5?JCtZjmj)FhW3O1=ija7ZyGOtG!kN7 zGWlGzt5D#k%M>i_84mSgxo)?GhFO@LuVD5d(2dXX<!dHy60xk4bX1zQqgls3wmL} z6hV0Ei+@}9GOZ1bgKc-bWMtm|%4C~bfZ>Rfnv1nocws#7v~4(~c9Zk96y&1RBMXqt zqBlAAGsaI@pNhTEAwO<$0)p^;QaHE3Gl4N=RiThn%OFn&a#viwYi`HvOxGp7t!z|F zS}0lW^p(@w=*S}y&A4KWNyy^eAqU@IVNF%W31TerK=Xwn4QvjoaSVrWYkdP3y-#0g z>{S6$Ls-6*;`XW5p+Ch1UNkV->w9l4nj$U+Gk*4>EX*r!k#d0CdpRTX00+_+( z7LtPLn?!%-7ygXsZ(QQzyx^QAWWT3HFlSO<>pUzsFy)(dDwM?MH09L{I}3u;gjo@A z=Bp!*KJ^W?F3iD?dqb->tR+F$aXxWU>tG>Lh&;U+n`~)a7^65-h&8u%B7FVmVVw`V z(4ALTlb``H#HLXP{r(z3!FEce$yL!O+%-^U_u-2dNR&R zZ^8djUk;TKJLN8z%G7Yg7Db(CD|b8>X?zex3v#$VV|envxypA_CG2MB*iEdI$8 z^k`>+{zbJRhfD!}{Vc>`+h8k3O8khp))EkWaytQoB2!ikp=kmdlgUXPAuEK!cX{jIpa$H&V3nBq~Lew@PSfzO&v&?;}4k|d%b_8yZ6HR2}o>Sb5GRLuGYex z9wB?}>UAlFOjMK3ej`&zV)X!iiy3uaIhEx{5RI{<@j2(Z9Zkeq<1;9di#87Ow!Pxwn@8o>abk-*BD z%U>Nd`&}Ij-4HRO8_@75T|0oEHOtqCni#W-`!iwxlP4Um(cb;2pTs;$fFH$JdBV0M zwk2-js8qEUxu3;u(28@=Jh)S4)3TaxCbR9nEz9qQYun%gc@a$tjG=nMEPN@H zLbiBoA&|i2oY;X^uvb-Katc{k2<}4uv<;@^vg?K@0b3~PHKK*ffio@qeCw2SPsK~029Z~&~j z8eF;5lbi4?s5h+V7r?uJl%5`cDhtdodCHTRxPkhthD&hwA~5BX zV*MIS4o#&qZ=z7H@oOyJVP%Kj&;h=JiHiP0Mw*>}byAfJPh5X4X7uUdih@!2*@)Sy zLi_|^7neI6BCg=2O-FZr-^kk-#u(}Sbx`#c|F|L5EI%M(el7FgVA8u?Hf{A*qRdCQ>F(Zi343cLKLe=7d!M zy7{gbg_EHungHp)MkC9Iq2Z?nk=!l6w24>$lcWCb0@Yc_{GeWZzQa#6@TP$*OVb?%b68kMPjCV9;$8Rtw=2X&20~`$P7kd-1i^-zA9}>BS=l|kLGTrs zAG2+I#bek7QzBL987b=oJ{gvX0!_^ffAAw>%vORZ$luHBlX%%+_ja5{We^<>Z;4MPl`8 zn;7}a;nXU3kXzuY;?>m#z5SwsEt5$azp%@b#3W#sxVwo*%Jn$6T(JIKHv2vB?7 zQzxbz+@h=lM~O)d(<1?1v1%XuYxeX7%CkYmMLf}O4GPmSt6~d3RHh*bmA2FXp*? z42iDx7nI4ggl6c!RM3kok-1BbCjWI;WVnPnW=WABr?tCB%i{o)Ev!8!W_czb?>~J7 zo(7~6$0;r1FhftCJ^hjqSw;_^BX2;va?`Jl{UYsqPu%aIxH?jNeW%6V>7BgvIJkNa z>qq@Rj>KdKr|Z@%)oyO;?O~>=j&EySVCL-0b3ICI5-A5|J}ZUd3)0dgZB_KpVxPGuK&rPEqC8={Bpk$-ia^fm@f(!Q1 z#00_i%M|^ej`kT=IRsl>z)S*%D}=-l5)>rO6z&8kC}1gEIq1aXARK>*T;aqER5n+r*HKThN59GYAwMbLAjufqC~|?-ojP@jsUezupm*=6Q#R@Qf9U z(_Y8GyA|mEw9T2fk2XGyWdSG?3ZJ&T|&`iTC=a>8nB`j9IWi;L4cNQN0!)-dzc!)g3mf$mAx z-=)2*zXPIa=R^Hc5bAu)jiY8+RnCK|@YlR^p8O8+=wlKgyCWQ-X3e_wXTww9uv?>| ze?Y&i#cP{&$%L&XjTx3RkFsrPQD~g}$>$64N-h28nfmp7=l0yvGQdJo^_@>vIyF)~ zayU&d-6Aq7<3e27zHZHVo1eaA#YbZb&xG(7L$Ov$PXZ^W~ET_p@{Ka%W@fY4}~{ z|Eq{>e4w0s`Uw30FIOQ>{m4?>@Ar;{m#3_(!AvjyAfERWf!mT;Z}JP;e>CQ%+R^us zd?VdKq=W9JIIdP?ay}tk2)<E2$gmE zVO3z@%SByG;KWDaE_}n&^!c{YsJ@%y712mKjr;|66Inrowa*^Z)qEmE9t`DDQATll}W48J9`s1 z!dx|}ly*7JX;JVpK?Kv%!jgusfh14Q+$sr)!2XzF+g4q5g)c|`V2=&_&udgDQfQ>> zk_d;bW}H@Y*Ap^wWEpjSj<`EqzGZH#KGcg1c$02YF^A9TLU8&|!Q=hll+!By6;I^* z55Hz|lqFN@bjvB}8w+U~w{>&cA^LYk*~+IlX_B^+$*Z@-E(;0**^LR!xKSbj3DX8! zyJGg63|5~-+b--JKmttNBSFyx{MO*iXeTlq(ha_G*MdX8%EEO*l~TSpmf2RYgUqc< zQajP%Pa$bK(Jd)llbxqDD3uu(b*QvG@N6)u7!vSy71dDt*;!%=iHooKeF9t_rjR#L z5N`7P4N-H&9xMGDWP19fOXnauX=f1=*AVGiV0iW2Bt+FD5KmG#xWEP}BV~Rx&tpEt zLGhw8935!YCtV8OKb=h8+TqWn#^?OeM^6dL4nCs=;w>-`0MRLJ5?^ z3ll|0xehbqluCElCZ@?QogV^@iEe%oMMIPhQj0cDbp0Ly?}LNKD_QBC*Pjz4u|G+m zR%{AfL9_}T$VkyS$@R8~mIl+a)H?y)X7%;S- zKeqhk81}Amr`Gu6I08|{&mk@qU3N-BO`MUTcviv<>@TR(#CLPY60D2K5o+rVTcW0} zdR8enKdclR3WsU?*p?>~uib4W;3R8vT{v+(txzZlb1a%|H^!nA>aQJuXb%Om-PMln zre~;|Ls8F2t|)vy+^3OLdZdx;nSXUw%a8rf$N>$;KdlB{K`b|pW7q!x%GqwzR6mSf zyb<8H<##thm{__6n)u}cT~>|Uh89qhL``Q5O~xlV4|Eo(`XG--zEFL_E^bqtHTtK5 zN=LzQ^XQ`(%PWh4~epGz*WAo`D$b$WLAGKXR+)T?s}V^s9s# zS><9!P`@pLUP_}3d1X0}o@sCmW7@2PsDTfYpFy@8Y;G|lkPnM4&pun2h~X0lP5v3u zU#WvcU`@RfhsEh6>pxq9CzAr@Jke;5)`!AS3AHm$?f=2%vz2*duQ;q_Ufub$dJ59R z(X2M7{9qGeChYUI`O9@pxeRuc|9^6@6eKP4Wk_ z@rYRqe}=>*Eyi1U-9~Dg#yUcot?PV&awy0+EtNKnG-zcGt&wd zw0RKZ_Vw2cm>>V~5v%JtK?Fd*n-|fSX||=uA|p2Ggho$Uk}sYfBO8 zO~Pm6C1yNVIyK3`&W-mpR`Vk=EkBGj<@d-mrxHU1% zfV5qfx~j(+L`WD|zxl5f9&Rl=H2C5x&E4*2-vDb@1-br?_LLQ4VF#Ybp(*sgbaEHL zD0CAa{FaNieQKFlYwj;H-hWNuA6JOZt|PP%fyHrjjiCPdrKeNvS9nQi(Bav-cj%ZL z>GrYl40wT&*;NNPLMb2B_V(lU!M5{4A1J$r-6v<`Q+RYoek5_*ebo|7V>Y?rAIYM5 z7u?KL+co^MGwqMdZUe*20-dhi8z?XZ6mpdqP_LTr=z8re=zHvzSG8GqyTh;6rb@1x z^*oXz^`1_Sq3JALz!Co&<045q!kx#0^y~w2mA?4Ot6#@|UPvRQVU)zP+H>S;Y{9E? zZ!Hm(fT%E$_(IVMhMN@Jll{8LNW^Jr0xog}{&MSuSMG$dwKqxfY}br=Oe8>hX+>|) zP_f=~G5rdTX|x?5;w$&l2=~Jn^74^SKi=mC1H9QfXls1+!n)eXm3d|&Yd3i4|00P%EJ`XDo~Te9 z>mznm=aOs59tYI_Q=i3``tUh|7?A_jKWsiwPxuS=4@F2$?ZU=03?xlNb$K$+PBmp* zek`!u!G?ujD3}1>FuB&ubu>~bLyMhXLJq%Zh;ieUD}(j?>P-{toY5L zbP_i5WraoBZ05B@@Nx03!=68=UfXp`Lv&73pbZwGAt=LfisD_dBeCxL2`-S-=Y1#< zlROHcl5Pv8I&AOm8ftH);lz8bot%md%KRaP7>v9bt?U#RT=%0x{Hy4FAy{Y2 z!|X6SSvgcsh=#PR)vj1xI52L9~CBts*F6L|N&=ES8r}=JU zdk^Vtm}R@|txnp#R+MW^-zpZ~x8?8eX&4u@kp$*x?K~crex@qk%QH-H|7q_nY|Jj6 zEBw5^AlMvpk<%2J&N0R}6PCN`X;-I_jxY;g8iI!LAF6BjxNKGr5I{5~5dP2Jj)Ec~ zAStB+gee4mH))Pj9W>e_|BoZO3mmg|?1jcM)GOvDv~C!fa1i7igOq_-I}$a+?x}EA zwW#=NXp3{LPRu!=EGigxLB^ne)SLZUJk~zN_mU*G;3*4AA@`cFk&%Z27`TwRV`i>C zH~m`FVRE~`yM{*dX_0b2d4J=R(a|OOAG5JRpi))eW)&hZ=kAW)H?F6xTR5KG z%(YplW#W<;z&~Yt78u`JILLk1@cnLQ!YFv1{wRqAXN2_p{4OVrS7_=S9=b`zRKvam z7rcEE2ApA`Z9=V#7qD|q->JpHq+ zW?LJMzlx-mG(jpL^4KRjP&NU(_fzkOc9boMck~+s%#IeJfYN%CwlA!&b*$0Vck+YR z!`+m@7igEoFOyp;XUT!p53-Z~I!fWX z`W;6X^4*A)G>ttoXcAo-Y~L>Of|^TPg0Od0$Kt_%4PNQK&%Fd z%liHy?VVgQ!9UA}Dj$E>dJWFWr->8ruRu&dfaU6bwvWKd$(;I9K%?yft`zYvY@Af3 z2kj(y(!9S!m9EKiKy2{+9ho5=3%F1m84+!JIB0L&`~X&(rY75&_Da#vWGmi^PV9U6io z6BJmEOh7-MMys5S-Vg@k?e@fgN#wyuVH^>}4XcQ)`0dHtm&DTYFNqUY(SvX}Husn5 zJz?6}lgr%n9N00nbbtWqzOpY~p*J>={#PHdireD$8XNYxJanvaWsQsWWZn|ajT5M- zvV{SaM|Z78mu1UxC}rR?Y%K&e_#ahZ4mDLZ)20#%-<+g?uR*Kj*ZYvY&WHw)vGpvuCR2_t=uP_#%<^H&&D`rRUP#l1yhGo zfWnyK&jcmXe}np6sJpizbbxN8R?eV|`)6I|uJSf_jf7Ij(Z|v@NghpW=6ChEzI+Fe zh5vYy*<2i2*Vr5(0<&Y)$Y1>YB4Tz7#Q$Tu!!;#j&+YT`B(bwHT#Ca373SYq?KK}q z5(J0}_Tiw?HYtWABx@+{axH?XpbPOeewZ?p2mMy;0*=#zcx z3sk3s%6)#b1)^wTv7jpO@y@Vdj#Y!~nY|y7yM;nfYFMRP6ZQdhIDG;^*kxc&{k1g| zD-0$8(PYa_uX>wJ+-)vpS)*o&1sPWD5D;r&yWl%2!Oy=mWh`A{FTiiI;wd$fe(a*K!Rd|*3m@7lNG7h4&v-a)U06zX@QqHWWAUxdC0zeD(s84GATFxV z-kg%ECgK1;#S{Y+O|k4>N&$cH5O70ELNEd(GGIuh_keq_y81OR0+ifXA_VKj_F)WG zh`x$t(Q-jjW)ZF-E$;Pl6EsRG-8>m(=+9ST0B<8dpZ01&NBVILH)@h%>l;$}2e@7= z=!Rj?r?T;(aZ--h1I94|2O@Zx-t`^o04x%8OqIA`J7+450kw{$10V|1fioRC# z%(6;5hiZFj(f*9$=nQsUkj>B^djJID;{VVT%KfwnNv+rL^SUlF`$4^oTKELXg>M%A zi6$fEX6{OpEC)GwTd$R*>!H0*xJg>Q#TgtO-za61m{F&}W6l2^w4`xQ@xq@Pe^>6? zNXX9D+PVd)ySMZw7`zX1Z8)4^)8N-Qv$;dXnb1LvSo60{dl17SaJXAW!y@22Exl?_ z-vip?przrh__Qx6D_mH&L8Z$^XqgB0t7g*y{riZbtqRPe(}Hd0R{kj2)*KK@!F?%i z{RZyX*IkqENCalJ?@ z?&E8RAG!Lvch5V0;%Y#lLnd&_7Z)_jCjC%sS*&)q73-VNEA`VwOw&Fwf84`T24QZQ z$ZxpF3$vGoTHQ-_0SMft@O@*>z*Bgn$o!^q13rL8TwTI2*<^6dNvM zEvCqOQl@^-DGV$xd_EI?=FZd6v9eEKjuOC&>-SB8U z3q3pTxboE|cUx;P`3n$I)-K<-Z-uoy^RA zJT%o3^g{kCe{oCy*T65vXzuBNkUwwaS@>C%-m;L8DMmxsuTCLj#N}w!r4j6 zD5@ZIPP{$t@L?-#;hYt_dY%eFS}lb7vHT0`~>M>3yOfLq@+0G@^WTgL0D@E zXOJP!W$nSvU+Obs`o?Te=XUxewux1%4F`r6!nu;Fg3U@Cfb_UiH9rc6%@aN3dk zsaR#aw1)wN=R4o2HHkEk;cuv0=TQBWBh=WO7#vZ;G$ALO~oDyIQwNwxsp4*LQ3twPI9)f#Pt)U>dw_ zC0XIxf+%<53U5U}D@Jqi0Vz=cRpBP%;Ni@cA+tGU^5bOAj;cGJ_cj5fIl7L}8l}<5}N`K83{ktme=M3J8 z=vcXUrMu9L5Mht#6YA>@E(j$BD#W~Jf!4T%Is&-~g7pHw=^C>xhr}IVStNEQ42m7; zk2^NWSw9)=a5#A?pvbpmWq@ER2nUdx;W{WZ|0+_ui~9WzZF#kum9w~z{|8lty!S!; zVp^7sgfeEEua(WxgaaqEsdB&1bFx{%GcgwKkbOOhm_BuRl=4Qv-@e1OeiGN&(e!ymAHd3f1!=6wKgwTyUz@b?zUmcXu#~qf3zVPWu58 zGupg?U@K_4eNwVn!#$y%vju#d>V?KK2bnJLF&ndD8GE=D3RVexsDf>94l2m-@=>7OT*-nF)CJf ziid9d?^_7fCCCkO?3L6$^$XN46BT*p4+!nB~Gn<7n7pI1Q*TlvI!LL34AFimK;T zd$y4r8VJv)H@bT|Vh%6zKBrgAg0`12QiacQ)?)c?QCk)uZ(oX!v=Eysu-SS(GgK_% z$){`ji$mq~fK+`BY)|7;XN%+8hLvbo@In=tdk$k9xX5spT09UWgw-eFB#d=BZ})*~ zHGt$LyHQ?O1l9qFJ88-*g~)%g(ksS7s~H4k~g`ZH=j?F zz{l_>wiSiOte1>dO+UihK@6uuqr|La5fI)LFnf z+r3KPf+UnqFy7X_H#J*aUK(tt4QZi>oIl0Cl3=OQ+B|TmQ6a~|yr7m?@g~`k3fD}Z z(UKDpugdQ{EAEpi082nO;7#-=QPv&r#|ZbraX}(+Cvfd|H?UNr1e#^!eBwB}U+8`& zF*3`y##jBS?mg>MppmxO7j9Q_x;coPC_Ff7|OiQ9)fpbA}g&4hSo4kb3m za23%5mNJ!0fcJS@aC7Xf{Dv;IBb_CG%8bl~x&|_2%>pfNB1*E*5I;`XQ$-b|4pc6y z_9^*b4G>}ZQ|24A+4DZL)YAS3zY{c8ZmoFrbwylA1*DgMqUst!x+^(g<28Z$@u4=S zY^?oj+k@kBa3{7NfgyEC4*p|S2ILF%Nx!c~0?T_NU!m^jmXMRnFtus$idPPO#z(fp zdHQWblHj^pgrH-9&7-&kz~JPjMR5_}$9jJN0u19|#av#wV=BpxqgNEwvcoAvA~zkt z?QB|JbCvlnv6&24oc@IFVD3Sj`^0EI5e8vvuRMK?%@(-aSxnWea=PtRx1xqShGek; zyFNb`IEN3pnmNA?~Y9pJz};~ z)Bd$3ZzHWL{X&NJPEqgYpucG2Gq% z!Wvd{PkiHMEV{0x5qELh%@)!)Xo7L=UB!z={kl~Qz>@l z4bQlqz;b3E5j#nxo1|H*^eNwDUc{>KYkY7S8D)t%04V{yc@|Q2X*MD(U%uvEyKj|IX1+kku%Mh( z=|6Tj4Bk!*WaglKW0%ZPa#&*9^1o6qNd(SQeq=SVcT;_uwGYK~2BLqyNhlQO^Qe0c zqigw0H4P=aEW%64a@j}sY8Mg&dggR%m^7zeWJ9nzeUsQ3;>I%O3iY`z>57lV zyhQR#rM#D%6DC3CuFq2GF4E#LiE#S|`L!bp46G@NNQyW50$nw!a2_ZY8#fCmXCR~= z1QdFoT0mF2UMAqCB10~H{|{5&6rEYHv>n^FZQD*J#v~Klw%^#cZQHhOOgORa{5j`* z7yre+*lTsK-Mg#$sjBX-ryOrqpm^DVc>OP>?xG17rP>P}dgX(W(D2WA>#Zt6KI1Rt z*9l@gMcJ;EcFNyNE!XU%msGHIt;+`NTj6rN@PsH@G-kxC%HSdM0VI(5=(}-P)JK^% zYQ)m3*yzM-<%$W?8jJuubQ;_l3KRSc4sB_Hc`&%+N>KZWQxTKSB zOed42V|7J7A<1frQso252ok0aDbTf(w_rri5bH?FgT8iYbVGnkyzDcM1E*FfahC5f z^je!b)~A_3sU(5%7YpvXecAhOzU%Y2@gkN75%F9dL9SJn_;Bkr2+EF8+1G4X-G;;F zndiFCzmyTGzaxlMR>a~$;!JdT6jXy0Iy%!OOeAhnp0|zvX+#;-gJT^(vT`3q^+e_Q!0({T<`Mxuq z&R^wQl+w}xB%Jj70nPX{9D#QcTGwCo)TUnis@9Gsq-w^A)V0(qMZEd4Wu)AvvUb35ihHfD+arM)(7I>D-p1r#KJK8KI`0ZEm7bKc+w;z&`f#JpPyO@iM<)O?nR0~WsR?hb;DHT24-2WX) zTH>GqIyrj*y37lu$`w)BAM#(y(J6E*6@=3jGGG3#=45Q6oo#RkET;viHGR5(dIxs$OI?O}iO79K4wbY(JtBZ&;?{}8=ZSJ&_~YZs2wYQ?mwtOI&}Rse_Y-B-guws3zr_H_g*+_4d~TB zMh1lDGI`+3{%|HZdm}Y}0k z7#X3jQ2a}*fV!qcj%DdI+=|17YoRij!v;v(o_0`24~6$qeGXB!WCig%=|;z*QuF`o zS+^cV_IxoILYP%#JcVqG-Oh#0f#Pu4N}-(!k3%SYjBE zpJOMa*nW@@Zrsm+!yLLR$CkW3f@NP*dzC7f__9N9q8^IQUUM7JT%&`*4{3YzEcAeQKfX3tY*PrmxKTb)h(SK9S_#!aqIdwH5n%{jyLG&T@$7x-@mC^9Z` ztnxi-2N!P%<{%I_BS0a2Z4E8Ui(Cao7v@f%3oNM9PC$2DIRZs8C9z`EeF5eoZ~os4 z`ultPIO|Y^GDU$DAxWLgqx;o`~%%$a_{iyy45i?4#iydugLvM zZfozznp0%_gipn=EKv_-L4c!2xFnxb?L)}6HB9{eY4qbIH#RX7hK!A5w_&*_*&F=- z*zfAMps~i$k<7<4A$s*?Uo`vcsBI4I&s)l@wQ1DgNO|*{cM2HodpThy=r22HM5qWk zh{Lhi2Oa)FW&?EP2?A?*}c~M$@%xCU6tBSgy_|Bu8b|8A^3uuLQ`RPW4Z>Cy*%Ba{G|n=G%+7o z_|h6LGUZgl14Mc$0sHS@IhNbEijVqtV9HsdC2=CsgEpHMd8JL)TxlqHsFi=5YqD?q zqWNe}=YP4MjRlIC$CW18m#Ragq2BQS5o=4oe4SIi(fM;&P2tG?24*aOzqL?by2jiW z=>3v**G4Q%1xO!ooQCyfCq)TeYjhYUFniL=Z1}27o9ZLH0fZeupH{^)zf4i;^0X!NVboDfrEA6W3ez+agBpw2i-+Afw?Ua z&J81p78@Ln|GfCiVsfi)QGUH{q6iEblVdimb)p#eHozGb83qH@Si$ERf@hiY%j(Oj z+CM@WW*U8zhhc2miIy2-;iLbN@*2Un2`90OC}tMKBR?%-5|U|1u6{2X$XRHp*l#x zo_NKZ1z-`taJZ=S^@%5HAe1Rwm2DT&5}f^Vk2_^1CL4VKD;Vo6+0fdLK!l538G*BU2*(v|B2dL z?=;u>s#tcyQ?T4>Z8;k`JRK?%C^a`O#9xZuE+1Kibcg1ke*N6|K~o9^o3UTVLD3%% zfKt-^az$A#G$v&#QgR09&wqRDelTpxRm?QFeUTvFatETmZ=<1Mr6SCGib%NyeJ~|2 zXl*F);qYULZA{{z)@ny=20Tlg=X&EiU-iJJs%r9BWHEF6XM)v$Zjv~PHyN&k54gOV zHd1PcP!P%A$?NeqPxLo?fbQ`+YZ)o6G1MoDB^<83oIwKgv^iE`J=Q3}Fznbu1J2*Xl zrkSQdScY}IpVH;t6%~{q7>k2#K~JDjuYOw^GKO%yp4vhm@IwwsSFv0pjQ1(jm%tgXFcqf@gL`p6UjePI{H!#t<0 z06HZqxkQxniL@_YOklZyEIXjoPxl zZz{;Qs#FwsFi?oXa4(^P;284h$|A&m;6x8>1)W$+T8G)<1@s*e*VFvsJf(nNumbOw3KIVomDrK( z`zCfDhUx?Z>jn_*WRU*bj|uhSjA@>YNkzhaH&qZ>s#KfafT>Sh|H1g8c+XEFtyeCJ zUBU#FYZ~!or}t$raSNzI41e<*IK5$@#=9UVfba`VgUjUSe}ORk<`&~siZ`qtAo`DM7}(NhqEe&zd!__ zrisu{Q<9S10D62uNlifc@ksR#8aDuJPy^H|G5{(t?8xPk_&h8Z2zZ{?v_$hrp)z<}yY-d7RS=;ZRSTnNj1Vg_b0M zU7~+jS^jP7H&OcvYt|YB(qTN)1QY?F1!|B#9sB+>Mk=s6prG)OssUw^7i=MMd0v>| zAW>uykm6FlL*5L~y--eks8U(#e5AA!1R_~B9mywe6`D6mAbd3`@_)ubWJ_=hLa~}W z4?nVK`afCF_%Y3~;X6@$0rnIYotM({x<$dMUB zf1cU^p(_L%4&*aEo57eAT&yVue83Q0oY)6|Fkua>U_+wYtVa9L0lq>7$yNS4POz(Y zFD=5#NsIcvZ_h--_5W(}QJa&>`U!`PN8aBe!B2}YcN#QQ1aNP(35j*-EFB^X&IZ?T zKh&-gjAVW~nP=3#*}M-KHD&SiUYGyA#U6RXHjv{^HSP!>lH<=gVF8b}{W_@2;olf^ zQ=St9DFc-MPdg0Eey}>{de0Am3@;BR+&x#`8CBQzS_wc76uo6Q5ci3Yf3z5aC()o~NT3w}C0(MTIq3 zRass_O8+eJ@pz`Ty3DBtRd|_|s}w`v*$Lh5iSnEI&|Mh}rNq+h51~Amm?p z7XO|#!+rqhF7z`|sYpO_vHlRX&9J&czI59IjO%cI(S`mBv=x~si={Y7M8Acx-NF9h zL&Nolw85zNbG*zOz*9j1f}nw&72al0BnM<5I-U_!JCK2CkUI%l?Xmm+!xtF52QEgl z&0++q(|)(^izOeX$nxI6&I7-aI>I!xJ5)jrP(3r2jUi;7knPt+;WCPAk&L-+wE5~q zW{MgX)a=26T}~AaTm3%#05tkYm4Z8(j3XYPrC_?!8gzBT;1{BtoVAG^{YlJC59-9K zYP#KD^KoX{khq3p_!oa&+@2AFTk=1x+*^H{O5O<`8i53-7b!-(+H4CriiH@MA0IeK~Esc-$IU;h4#5iDtc4ZyWJPKg5)P zl@9o zRuff5bWe2^GWy(?kyyjogw3HcVccLzHhNl*sIVk_TYBw;@!HLo5Z!##e^yW)5n)Nx z5E3N4g_%#w#Bh=$OZihGKvLU+4CoMy>99ya(>@^_R4j}qFM;3JDn_Y z0)7b-zutEj2vQQcNyrd-1F%Yn9{5d82eV8=8 z)mb*O9<}a+-lKLP_`<+zwJCN0gne{PD*Fr9y`_iWPGH^Y!p9KK#`QOLJKe9>KM!W_ zQed+L-t>3Oc!HPsXF#v<0PdlWZ<;Q%7uOUHL`e{?&6xG6jqe=bFZnOFWLhJ;aZY+# zDi4^~fpw2BLhZ3coTykfmt$kcSqZu$#(%bR#zMZ)YD##>av*_ZJ8!^6+={rB>>uL<8IR zIrSWSy^hRwoH&W}hM$b!{8KRl{QkMciN&CRmuL|5ptew>eM9KXQYXPq{MN_-wq?!4%$h z`adr;s;y)0_>QbZC3he#N#evX-Vk)izX!M`U^QML$jdxQ&inDXNkw6ldKZoI>QMVW zp^HPKD5SapDAG{v{KeM8lTi!6s!;-t{L5I-yPpO(BR`2II7U*SCI$E>FGFXJA^583Q z!;FC#Qy|Po8y>#9^g?GCnQNi(^j9Z#hlcAVf-$AvmD>pmtz&UeB7Oe%loF;DY>y3J zd9)4yV3}DCgOdq?Lb#Un$N(hgUGoToJhm1PYkn!QK%n=jG$+$(57MJ9FsHwM+?3#P z{GB~rW4c)9gGNxH4(o=oC~|{1jX)TxFskF&{to@NF3$#kQgNX$Fo$EWS%E)* zSIWG=GF|@&rz_eU-hDLOqZaczMGGGR8kVT@^k)j1R95jCuFQV1-G+xm%Z4`KnJH(D zI>6y?hQ7{n|Jn6F)P^EhAd{|(HGtg7ziGJuFp@PD)r{lK!FZx174KRt5u;8i|B}9; zgA#}aQ)&-`}qO(yEDq;B%|ot0ZC7)$txjr|(-<&HeM#Ep*QT2<$L? zRDormI_D^g@pBR4?@J?Au1%MVN63WtNOrNCKlh5#m>BlVCdTH7 zeODn@7tsc=>2 zY>aEC;WfV!K0!jA8lc$AE7IBMs@pw~ZKzgr&{M}v)AHn5qKho1TcHyLuncr{$UGRj z@M;}pu}EZSsyhHMa9oe|nMLoUBew9^QvIF_Z84T5QU5_{G05_%d>3yS6WD8$b3^hA zwjgtar;UXqQCiHQ^>&riSM23GEHNi}yc!OR%%kPo3b>|4gQ-_{I9L}IMJ<5)-z=!7 z?prulYhK%?JmS^bki{`m9;Dm!(@Kq-OZ$e}dM zSbzkN^A=O4h%toxl_o8>jhidaZhJOVdkL+=R@9q8eALcwi%u|6qrGzaGyEimTjvXT3YKt({WGKn;ysym8#Y$zEC zlvyxi44d9x51ijPH$vZPS!T5)>Z(%qDz0zR1r{}gFw?&=|G|L1I`J%-sM%)Rg8Pg6 z<*~SxOcwtBC&NquI5u4ux^$syYrx1Vr90^kTTYbya@pLzq?aEJS*<^JcIxG ziKt8?u~DO-H~t%-YC1;7a#ZMU=_anCmR158sRR&c$wXuU{FWx;8&fe#fr%~yLcT)! zEAt5*#-dF;^gMW&Ku>JM*EFp8g^}X?WVxpFbE!-%nCsezO|G*dW7}c9o{`j~yDZaX z3%F-4AVDk=pN!fELOPd>h|XI;Ar)~eH9N9@Yu$!RF)q|4t8+ozwX|MXnp@`T<1rYK zD(g*7e4H`^;3`~GUKbTQoPEPl*Hlodh=^yRA3k%E{WJi>?QY;IGa9Dt2Uo>dJEWqJRUknV%plWMtNy`}l zzpQcq6nP>FMg5QHGmS))2Iq1Ija&$VGpH>}q!4o>KuL9E8Veo%-35oc0jNbK@VK79 z_QX^jF+6@uaL+OH0GMcR=aa2Y@hGm;d88c^Rv*F+N zOv`r-HF!bhL5Mg8@_Hj3Pb_@ehL?D11-0iYi~PLb=g7(Okyb3j`yn@iY!h0-&|Dn{ z!Wu@N05`e`)!fPH?U*d0$3`%h^4@@g1QwZ_20xq#nPU&3$@FW#PBQLM>5yCglefy` zYyQv%I}#UQ1l%e*%efPD|AJkEcH>V+I=nG%1n!;;KZmg*#ATIRdb(ua%+bbzHdh_4 zid?}@OuU89XEX-3oCEv%+ee2zMF{n8Y)IGzfI!7pm{2EiRgAFgo(&B@iETuvBlNpi z9Ve^yrnGcC%43AAP45gSOsR_CP%@gXU7at`yTz)_>N1n)bjcIn@XWc|2K474a6*7h zM?lfxzL^&bC0$5n__d$dRdtkw{{$UmiazRKIWBudv|5|`QNyb~gH~sLP3qUh`4ZMo zd|A+_xL)9U!Tx-ZqC6DYRzo5vJohGONUo{sWWO2KZH^D6vnK>>mE8c-2$wK9gx?{y zKOE=Z=|Co3(}*dt9K7UHAh?iuQ15*<8gzx)%_!uILDN}ge$;pVC&SJc9rSOol2d=z zlh@*A6ljS`v4(dFhy!-cnPoc`0}vW30MjlBOd2qpO2&JP&^sXntR6JZzuGnXx76RS zbX#@w0lELos00@A_%x0xUg0Z_#$&G$je8Fk?r4DZN@my7Sz929y#=T}%h#+*Y!Mx% z0q&Mafi3&Omy%gCAvt#3TXq1Jb~Hl>)gWCdUEe8JpPhS@o8pj5BGEIeS@(?!AWh*Z zeOsW!S2M1J%|2|o3M`)hXX<7VuaFv?a()J`*2dN9lakJiq{tkSz+Ps!GHP#(563$< zDw`7-OaL+{VuMAu!+K0^DX-)dkU^p7PoO_|XN~j@Jb-SluTcaaa8z1VhY+nJ96B;T zsz?@*4&R@Mg-{HoPR;`{=n}XJpp<=Ap~oJDJ@ekqLpX=7@)hp0-)4m<(J!H8uY zRQT(&IiSPK;Ce1@fnw*jeCL|Q4IG1lWuk9NyvS?thKM1(@vMd{ot9Z(uI9r|N!QDmL&JjV{f9&N14w zG2Gq5z=MLsuyukv1P2KLCEl(k_IvjF{^g6?MERtamfr4qZNTpcpB=dX!Km=NL&mSH zO`bx015US&Kv-ThntQfSQ?OvQMukN(Xbh(Pb17eV6pxOkK6(&f+lF6pLTKCwcn;_XSn3gM>4i59u;jSX%h;nDJRQAt~Z z;vI{akhw-Q(DtwZ!l*%{{r{}rTUrVZ9{j-%tU+7JgJKrKK{BrT|Jv~_&wkQs)>-ja z887OF1WCXA3iv1@nKZtze{#~!&=Dm3Cw-pzt@-WqV@Zs8H$rt$S1IU;y(})uO|yz^&>0&w{s}VQU{@@$Prx1B9nO7F zY`;`7gnp}wXyszwE|dg$S+(3=?rz1DKmX48_`EU&2!WHG3@RNmc2|&)hE~5-gv9IG z8ALzJwY4!)b8gX_oUWqB|A21D?>ZVW2igE5K{Z6 z=7AIuGNCc%6@MG;?_z<6n&Gu1%NVqYQgXk54x_bs6wC_PyXBFYnP==CK?`p8k5;nv zBa7*8RhW2{>Wz%P6y^~EvqyCIvwB;^kYocGP9Elc$_WQ!74RO0ABK;2O@iP32Gf^U zDb>q_Os<|s`K#5T%i>}HGWHqQ#=q8{2eSkcP~_tO@hEvyzK`}GwzrE0YE3ZZwpWW9 zuH+$Ofbth^Z%|_$d*DdG!5{dzUf8{hI`nSWP!CC{PrJRzeQ0buSKGq3pv40v%&Gw< zDYq{>E2&_v;?}$NK5!M?uTlGCK{)zRft@k>qQ&8`^MfMi zqnQQTwa+94!6(rm-O@lwC4+sMCu&jB*bnwp=wYM^v~Lq9PDC-Q*t=2KX#L1Mu=ByHgN?kYBdfVWJ@lp{cp7D%%f zKDXk()7_o{(g2=R1fdL&EabP%Y&ujfTyo7EhiU{_CWZ=|Ka9`5ECy!@s+W!2k$ZPt zt-M%oi*h@Gs7qLguXt&Em~t=#j^SmedijVc#5R$h#d?g0yJJdj4g3ylPL&$?1=21J z*Y#<|20FO1R0+zYG|x)Y4(|Y9iKq;;h9MMg=o>y|R3v0@B4h7EXF}$TvQQ{8o>FSE zSgQ~A_SC&5W&#|xt9{Jqu_NWT`ag)JH^{RmpBbWj`*WBL!t3G6rIM1HHqHLFKvzSc z*KbkkvsQ$MQvp*@L(XvaphP5pAal{apgOk*NC|nzXj+|UxUTxbgCzkPL&Va?rEREk zH@_}$50k0L2hM}w@$5QfjS9{w4jO9zR_I&|#6ghSn5kC9N72MsM|lbi@eVv`qt(Pq zgaEhC@k*FGJjdGxUY$XDmdWm7uXz+zGG^tO(d_3m%OE~2h5rVCpK;JCA>i2++bS7o zCH|%rg3rBII`Z~M56J@Lk2v^_7kj1B=}SdwMd~;E2j=#@oti>w1(bQvwQ7y+##x8Y zyt_`#LX-aGM?{ubRBPp4&^cq&$K%UtKGg7lDUB@}TsO_VCx)U&MJKWzAl7 zbkj;N@i?cI;sgaRCI+HWatULienA@{y$w>b+wvVg32oKM;V#)=*uoerppbfFF#S2CgX$M&P?mUSW zfPFYD>+ehnfJ0nQ=gk?0#pz#&XWHiBF-Z`aPSJnYeo;!cUEb&gLdZL$Ljt6B_?GGkdrTuI6GVzU0Y zhiPxoaoBWo<)k9M89Ni|%%h?t3yG2m=Fh^>ko!qH4|v5J;UxRWah_ob=v*LX7KN}N_GZK94_Y_uIK)XrXZbjn3yu-o9b*1s zc+*tBs)Ym0no1JPzNgTirw4SKW_>ANy0o1d;NGcJ;OZ1-B>bK~>rFyihIN%uBwCEV z3NjIK%c4}RW}Uqy}vijPHq$bq&){&Po$hu$WeN_q(gN z>r2$(tEH`@$J@n+BinLhadQ9iUzIy2KdeT6^%$mo%lelQ+}oo+k}WekyuH{^Lz zB+o^N(9z3GmE`^_v`<3{!B`CqlVI&hSQi^W?~hIbT&*isnD^*uGNudXPVs;wZ(V|l zMkS5%ur#x}+5)s*7w>dlBlZjDq?p;QU;L_^sbTYo3JZzdl=^QwJG*m_%fsJS$CwT# ziQWM(#d%rnR3iS7-W^|CS7pxIsuLX%rv~OpQ=`R0S;Iv!>U_`M1 zr<7De!K6LNCvAXP(4|jxZiWlAyoa(gM>6t1W`YhD$ibx2{$1no0A{C`nYY)W0gj2t zE60O%><@m;mU~2en^H~2N*gsU6|Xy6QS38M3OD9n|N9vU8ZhOVrJSx?q_8*rhTK8jZ= zmQ-QPw8127xC9;-7dnJ#Q+SYhyfk6QCM=k*qXJ@XMWQ1xQO^SlZpBZiBC0#AJdoFM z#S6`hH4SdODb1iG4SJI%q8ac%seQ(}K0#a6y_Z{Y%jN5aq3VrsDQ8$M+mX94J#}gw>iB| zetLh(G;~HfDMCy-d%8_WVF%}q&g&k=-^sqh*B)MAAp;N2NFzwX3{E#b9Nb1ijguS) zECR-4!p7cv>!p4qFmayFSTSjU-+jjM}vz<%ZiXdxxVVtpghs}ckB+w;(;V@~C z*44NUfBg9Qkw9VBN;ifbPmkXTrm-`7?zHXAfVlQh@MKoH?iGAfX)H(m;>@PI8qL&A zFWq|Tp2g+DJrTnVvezyecDHB(MTHK!PN^xR!i*0kHK)njrXt?An;@f{Q?LWg%fi4IIH zsr4*E2I$}C7%$DEyHfY2Z(m4nBgQpKHgz1Pn6@FGYd0BgpZ-t4Gq25%a4O;UbrbgK z01?2Tw;gZ(D6X+?RhC9I)8vL^p)8(Y9H(U_g(KV@Y#sf82>P6ooN`R*K*Sq@SQ~^f z$+4f{T@V!a6fd=*RhjOtM+!>b0js{YjS_y?bm(ts?dyyX#L{k|0`$@_W6;4_IIA6r z;HFl!lRr<65tJlg3ANNznQuI>W6P8f8hT%8gJ5S0a&7uI%D$wUi7KT}Uk$kF3~06n zSE)B+efpPBEY=E_Twfd8NEonvWq{Hv0|^n9)h+}6_WRAG3(z05e7%F6Dg;Ox>>p0x zhVel)kyU4Be{A-PppIgWY2c2kr}~qJmpsiX8vX^Z0^SM0Yn|8Wu#L?z{U4Zn)f377c>}zdoDlzr8!3#)gA#)+(uAy_j;Qt6 zpWLm44^IT(;#Jqpknnc#;Vp>DXuDd9qTTBiCgj#K`{tEdV)=l`T7G;`&cUH#{efM1 z?PxDp=rB3X%SeqfXKg;znCcok@iAy_EWBPX|RQ)>vaZbsV23RLpQ%T zB(O==U~?Y#%r1m8t)PZ==N%8>`CQ*F-!tbS_Vzkdfc)u$h4O?w0t6zTXps4=W%^DC z$xHb8#wH(zLU4JNh$>>|EsIL!j%Rmk=i}iCn`jpSFPe7=l7=vgqDj&4O@oVE4hbBy zmOTWfTxZ$VZ5NpuNOF{&P$lLZjbAn@aD|#SS<6ftbwFer>ilr|?BUY1v9r-GR6N^P z5R{{Az7$}!kOsrqah)oNfrXbX(MA$1hzyr$U@9G4;eKyBEapk{7o=iSPwtr8S?jU0Kbws!j12Rv}EHg&s zwBjD}rV}Gxtn{`=<=Za%6G$>ia#TR0>Olz^jPIHo^nMSNG7A6Gl6()UH0|+#DJ&oQ zJ@;21ImM^n?18t>=9my;j%q010i}&jHs9edpshlH=9B7X6sfFotQ3|HUuge~e<}d( zuj?Ho(fqHOpE z0wQ>$ReD&2B7bp+E66xfQpbf~*fLl$MpO~#{#X;kZ5Rco4|2jvf=D1fxEfS!@Rikk zfUH1?-9n;;)tm;z3%c~Q)YXb0e{r=We6TjWM@61V@+1Cnriu%qGKzlL(Rp&4i>ZrS zE+d}w7>;!ta3a6!l)x}eu^n1H12EBMj{@K>wfyyiens#eI}AqrD`r zbrl1^l?8avEADx_Oz8aBSJk*jYkIXrbVq3OR$T!rl^}zvJg^@4VcI@FKWkzIZEmD+ zxH58FZ7h%$XO_W-poykow>J1!Qa!ohlQT(6Z-J7Gs}4x*S8jg@>l>src9fYbz~iWP zxI(MS0mmXy#@aN#%11)WzsAv}I(v2oKPK|@GiZ!4}&{ zBYC?|13kNB1Glk`eR|IdtDjP|;~g(nfHk{^f;#aM{lZCkyo6mGN3LN(B@pCy+QC?y zbsHFyd2Q88uRi|y@&L|og(krnAU4*|B@Yvr91dhlL2Qgex**3keC1yW=`#?5D)FCZ zUq6JPE1=!%ZhtHzD=fQ}dl-tej8{iY$dS$o|IgUtM7}I+JgB1~Z~isDZ3YNzu*~f< z3LI@fet+NoF%w#fbS!kJPSSdqUt`9ydKc0u8O~v&-x*Wjb;>0?!5~&HvTbFBlVIAQB*Wdk#nFe|34D_VJr#M|z_c;phs>@xAnE22NG4e6%@Z?) zox7IG+v|_F#`=%B9y~v)Too8;U+!nEAci%MDFrAajodZvr-^AzA(B)UayzdJClu2{M-S z37$JVr(bYVQ|?y3Ju!z)u2GXDFLuTDcnzv3bCl7T*$7w?AQ48Yh>ziBl_vJXVwa#t z9*2~Qu7Gw{eoZMCnjwPVsBX)eNlT7_eDDY2|FK|d0aB#l^aA$$Oc;lGCn)W=B z{GoOl=--V-kGnTi5pwLW!Hjw~%WEUKwFuhnGtv+WI|R=3E95;kGQty*#8`=vzqEr) zE|EGivPG2(#!||7Ow${WuCJj16`<>y9&<9;vyozq>D`-nm(z#IZLOwRdYjGt5-6_y z*^VDHB;#;RNKh@7GE(b(j(LlCCTMA)QRx!9ULQ|WOdQxR zN0Pzr!X4AcKy9T6la34Olc%FRIuqvDvi(tm_~x$EtM13D*CA;N$+9ssGxnp zyqR1b7b`2Sbbe zo9ZJJOQ=qr*RhPPm^MA2OB$pmQufxgI2U^XQBtISEYd=2V6uQq;wf zg-mU>uJ?TrnPRk*P3~Kr5S>!^FVLJ@Sd}Wws=*Hr7uPxW_*9*49$#*EYlMIbPkJIq zb{?xV%wYS}!&2QZ37Dsz?&r|sW}M(aBvs%6uUviJaL>;o|CxxV5^0KTa?WU_VBxb3 zK)H%@bE0j=(+oO-oMwc|6U(Dt3ToXQqTE64Hy_KzVeMWr$8*}f6}W;UX0BKlKD;PH znh|`l$lS&68u-IB?z&cs63|IS89~&m7=1@zw0SsAW||Wn&}8A}_H1}7@PHyY8$vBY zWy<34IFlgDPoZ4SzS$5`j&ng}5Dk9@2*N!zA#6NdVdi_Bx%mTqRs;*^ZWaGbJs$2@ zg#Q2z&K*WH+6DeP4I^pAHN2^qQx8RcwhIgz$Dn(Iyd4yEUmeWi$4D&fOd|FaxyWEF zpFUJ)6gvUbTMh6;|KXAwFZtsYH6kAQ)>77NeqZf-*iU|qD>XN7)BF0Vd$hj*5c8?D zjIN$m1uBLLU!h=|ZtuCBK2`uMO8TALm-hB@r)SHV{Q$oXm=?Qsk)l_ngPjo(KBw6!xk>bbvT65t0f!#M<*RYX1m3v4=@s;C0ajD0m_l*ee z8YsJ)i&481JXfqRZ7t9f%TOb869%wi1Lpf@6}3X6=66}H#pvpDn)>oBp1-&auiJ7# zbL5%)aqJt)P>m8hWi<)5qo{jKfefiJTtZ3dN~ZxWWe@r{4Cj+qPAq-^%+)C%tm~&m zX102@IY@th=#hgi`oYU|i(h$Opn)hqN%Vn@QB5A`s1BzwJW<1s*`p(!g~#r?ww~+I zLLNX5Atz-HLVl}8=2dD;wxztS*4LhPpi&FblH-Ez5g3X+55m~k+!qyg)XtMO-Q@&@ z&I`mdDFuC4dloeu|!Ba@QUJW~UC_iq}RNQ`@Z zG>!(qp1Hy!N^|>9vl98MqYOWAS4#;Eb{|6;n^J}y>U#0UkFm$qgHS$Qxiq~|AUmL& z=JgSNgG6Kx9-xna;drGKUMwy1?Q?;kRMl`;4WgtFv;P^~1Mivx{2WVJal~UwIiUb4 z@atRk2??0yvd)ZpBmXnv7z+n~qe17JE)BytNuKX$@KaeQ?wenxEB9$!7aRHvdg_L@ zlM+1w9u~`#De2dTkT*R@kWTOsC=65aW%;CxSoNt(*^U*R_wvaeOtwUGdjZP{8!)^K*_ zlvX-#w{Tc7qG-}E*QY5$!lfWDl9m6ivdw2o6tfGB2}r$U^x5udwn{tvWaI-q*$))| z!8GHMaslK0{1p~%NMrLyiVj^z%Y|OlzmH5AhA=`|nv39*Eh&Os;Vr%z9MPn^2#e0S zC|1Qdc`PRgumRzQB}Z0Lu>MzsU|8Jb9-;4qH3*1$>>a%bi%2O^LmxsAUkcR#egEOC z@cu>a8Z;6_0t6$N71Cq^5+4Q6ws}%#U;4h^p^hS8my+clAwpUWM~AjLp9GdkV_BVG zewnt16m;jF7IT>G;Vsyat`k#^gx*J@+vE4VXKF74fY87awL`EC5i$^D?V|KaLul_r z2RoezzM{|@2lS|Iy%e?x6Y{nbs0JR>VmAx_hCRNqEOxy@d%RV^`9ssYEa$1HZwKbF zhA+*4MRwX53ExT=T#;KwAS(M<)YcH^w<^+;~NRqMW30 zqgp**`EjNt>4;l8W7#wr;4xO#D2qfc)An=~zylHrTF1Ngw#|l4qZItnBHr)Nkq1Vf zpXf9+qrk+w^!rLcKr7jaUrJZNM=&BL8U1Wv1OVPKObB)lZ>al2=2EC z?ETAdVANeUz9+>_TK3c>b`b5<>NTbB;>wLIC|_V?HzGtNy1X)XVAO<#OSulPLKTAq z2u-68KqBH_`FaYW$)~k& z4acuEjjBsl*;pa%s0EP5=@z8){h{{4Jy|=wDD=x?gEh`GM@#_{eL3oIGOSa44+;;M6^Qe+ z(YPTM#xkb59~Fx2ByV`z8yv}&ei}H}N#fK4GUHgq7)?^~NyTgpIM5Jw$2pZD00b;^ zDzG7mq#RWt+;0o|T&v-RcPkO7ME1OF z{Si|cZ3eB_S%zuE1=PZ*$Q&aaAm3sT_O3%#ElmZOyDWR0`=_SFiKYgs3R4I?d|y_J zSKQkfm2#HH?gJT{PBgWUYbIFPJ)Jo>xg(`r>2ZN^J{fm)O+4W9`2Pj=5ee=-EEd!? zT@u-njsvx<=O1ulF0q3y025J8jW+RB9Za-WKfZDP-~f>Y6$(yVHH%hLXthl4CLe#0 zWSs;~=Yg_?1^*ZlPfV8hsNi4YioW$#Ev9_w12Zym*s8;V^y>Nl{9j{giO8Co^6#QN zk=jy&CzZtVE^pf1wxDAnFdp>cccZit=@Zl?u@Kk$HHhm=djbLOz{w*g)?jCaPC;n8-9`aCpd#ryG_H>c=L93Q*JqX z)-nAm(jm5HR%=39Q`9nhU*M2Yo%m3LoR}l5++s?mgp=?na)V)WJ!Qc2=2RcoWn((P z$=GxKwip1~kjDULDcHOfZqRZrAWm=wo#-lZ-|9EXjb!feD1&x6NSHTvgIj-O&F0|I zW}zN$u`RA0kUSMfat8C#k6JGwM{$P3<`Itod&u>Pf@Zn>BHG7<3^=MWI9FOy>obQp zA)3mvmmR!k&M419xFaJ|-eEpk7`8U+d1smJi2_c92C({xReyUm=>h`+aBGKEgBaAE zH3vgoPj^BIC!e?uk zALc2r;npL{GTI$7+6aMB0yBw_$CzWLF&cQ{sJi_N?KZ-Q`iIzNCQN@Ccmmns(?Cuf zN(i>^QtIFP7>%vBsfS-=D>mf@YT`1Onm)obNMbE|wmjkJp{2=)XrL)g0X%c)Y+1tD zaV2@L$4JFD5Fz3l2)F-e-b3?tQyo?_0a5`XMDu?%uNVS+4Sb(J{TCU{fc3&_r(;mrZTzOZIM(f61!;+n8_9Ns2j0tQmY z{1szcBjbL_E~tla8)r<$n0hgq$J|iZ--2OwxGg`#3dT@^G4nCUSOIrUU&Xq8tTta% zgUD@@fJ}9nrQpYyCEXWHxq;ClK%xK%njk&M#35eWZL+)oWO;wB?aH)EXe{D{SUJex?4)SG1-JI@s~L)D zIXhjdAv3r4*tx)vFbHA)wH2<`{a=9Ft@$xhA#0VZC(rO=OEuLzt9G zMtl2MRrpNf3MedyI;P4=={1yDLuUem3#_n+8k(6PvPOzJExMw*HSwXkujk9kWWB62 zTUd=Tzp{UVw;Eg9EvqLXPJ+vf7%_g(rmWNZs4|>pkcgp+Ks)jR2yqiOR1Ig7ftG$* zl@Bs{AiXh$2n4=E7y`#71aa2OkTS_kB9CG>(q{5Gfte3{k%3JGyucp`aL8+9T%4RN zeB+o{8{M6hlYtLIj;C=GHmqzMGAi~}`%sPIU)g`~W>kw%^CE?p;5E;&92vzK;n>Gi z1T7av!Sur(!t=demQNY7_o#6m#W^%;ulP$ZiNr72k3+OLCP^zwBxvV5x*69t2Y^$nDvoc85v{{JK$?>t>>CsurR*)4bt013Xn(^tGxNy~vIU4dUi~9Dq+EkG6{icFJLF2U<@T8~PkI)PYq!`F;L9j&;pwrQuo~h_&=gQ5u zJIrDVoy`I3(9O;@hjp>nN}hH(WX}dz3YYx>_ig)Os8k$zMe>&+f`<Z<*c!ShJF$8tTox`D7$$)<$FP;IV0*0eHUjlh0DGauv; z3?&%O6K^rzjbS?4H4FU~+OlU4__S@5^_ukTc;|^uP}KLHM6byKNc>H1#C4P2S20ZF zph5@KL>K_4O_V2x;o9tZ&l|d`eXj~$n|n1V@+Y1#yv_Bf5lJ5b^^G`{_~DuYRq zX$l747N~iW1{} zPXYiRp2NNK;-t4*bBKv!lkVQn04voBvVXn)}Tdx767E- z7f(&O(zlOtmX0N1EzZPhs7@J-Qk$j;;bl%4tet_vcd)m}^pd|HYX*Px7$|eLGbHh# zjA=moYJfIvupb2B=&`JS`kOkURwU9|+h`yX^L%Q-b3? zfQ<8QBw=7?7d&|QXe9b|3Cp_Rsl$hkRP9b}e&l8b*5`lR(Bk9hw-PHjFQfM%#F6Q? znZUJr1bnx#4qi57|NMWxT7?a>To93wFhh7j`V~W5cmyV>#uU#cEowJaLE}$` zV1j5ZHEWPYP&5!F1mz%H^uVXgv0IKYd`UW~LCzAROn^rDIt`lQH{EsP|H@%-<%NLZ zRwOgTD60&Mak?c)^OgWe$y8x`@u2}{2?Khsz=lHJ&rAblZNYz#Fd&*H)HihDb|@Cr zy3(D+W?qjkBgQa=;$gfq6lV#FBWeOxyN{eW9{Q-|1~-;q;y-d6UboA79;_!|1EDV7 z{X1z+S(B#*Ty@3jrwPog0o1JNHCfY>ds}~` zR4mC}Ynsz&E7W#l(@he{(sAvv0!@wMG7Zt=MWfmzz`~eKF(G~~`R>sY;TS@rri|Jo zffW(na)Qh8Wy>0-JYOS5U8c4t`V5!zrjF%N>8bqO}%H?3323^I3=#vGKU8 zq$#$WP1%G#B}qCS)|EKBrdaJFffW(1cip{TKU&%kIZVo`wvH%Py~qg zSiQgje!=1ei;psC>$mZW02KnNfL|NB4}WC769*7#$*_4&z&}uMg8RLyw=w*Ex$%o} zy}Qw^_VRye3>7ImH^(SXUEB#qb>ma939xSV<1q|GKDeFSXDga8*i`GbtK%5QX_H`y z?nfB^eDKDagryv;Dbv0jq|I6^YnCH#44EdWJn-f)kmT=3-XV~AeyscDZNnkbZ=b{q$+SdK|NxY-Ss>Jx{ zGU0!5%m-`+NRRP7i_3bZENA*4B4(C7k6^(wwQKJfl59UX;}RGp5APFvui?xtC}sEi z@f4`Rr0a*Vcyi0&$w=}Z^J#t=CX$PJxz;lJ0pTy2;K|QJdEn*H^ft^gD}q+S0dvkz zes)Ut@*LwPCs&i#C)zmv(q~-$ayfZeYHEL|{~9=57%OsyunU^-8DiUQ4&p*JW_ox1 zW|#-I1Rp{~dd&1I{1{24bm>>~59_vWw#SDOD~sXTpwTB5eaIpTu&}=gsOCTn@IZBp zH*$|)f(HNq8u zQ#0_AfL?qt30W6pU?4w2?!vSq2Tkw3hwQQa-(3&tB&!s~htnK1WyM2yZA zf62qk_@}*rG<_JOeOrB~o;Y`iZmWN`l)3M&ZSTTm%YG|(kVMEB9UhT6zX%{x8bL;u z0o0{fGS%{bNLca;FT@!Ez4@t+wrv&n!dHK0JauAO zxkKi#=8d-P_`#2tfp8zOnS(p(F~iQ)!8U-lOAp<%vCQCP`K3MT95{MnCgX_s8W?KG z88NvQ;ma>Kcyf(`URpGc%CZEe{ptp^LF;ZQ1#q0F36g6?ZVF(^OV&syX%e+CJJWkQ z?sMW|q3)T*uIe!nE(?n6g`A8-Irw*V`iwy~#{TB0L ze_O1hyreNJwq4v}VYY2lf-Uw;_4(6(oxq9DpZ-Q^1U*))Ld!Y|x*HQ=6(Py@Mkxl9 zA7kK*EC9;s7;;P{0wt7t&k9Gbr}J^i`}WiEoB+;$9!ib`VB}BOu}FV{dHL`*8Hp}; z{qECc1h?VaE)fPXCbRiT^u0uFyosvg*oZFpO9Y4esP88Q66`T$*+L-nCNOI+djJ9k z`@U_yQE3|AuG`%PCuXwGs&4~}o5%H~ukK^J?(ajut|C?zw=JVe4eKoM#@8=IC{F#g zT^27k3kcxW&bRGNwfTRcc>cQ||25)@^i6>xh|(YsD2_oCVuTErF2jIP|F*sVa-%dz z-Y8}mVH9@x=8&3K*90y0Z_j?G|2-dT4)!oX9V#2BtKaE=&!NJvptc3DX&dhJjoi-f z3*GV+&tGtPtlMr|jJAUzl!j2xUtnn{Kv2(%SB(CDV)XIm{6K#iKYp=2KPK%F_|LWJAkv564dyfi(=-!<)xwX$89Lt>owBin+rB3zJa(w_gob9Jc zhhUOLbZBK^-l2ah*LCq7HXM>Vb$)EerRqzze#vc8p zZEUWiV23_h-RO>8jhlh6-PW>E2k}2a-*XEKcEmX#_;z5BcY83hk@z>uPG|9eC!gC$ U6so#=h5l1C#YO4=19cG^BQg#cng9R* delta 37828 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�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 X`P@dLP}SWl^q-

    Attributes

  • Nicks

  • Tags

  • -
  • Spawner and prototypes

  • +
  • Spawner and prototypes

  • Help entries

  • diff --git a/docs/1.0-dev/Components/Objects.html b/docs/1.0-dev/Components/Objects.html index fdb476a297..9742a2cf6c 100644 --- a/docs/1.0-dev/Components/Objects.html +++ b/docs/1.0-dev/Components/Objects.html @@ -98,7 +98,7 @@ like Scripts

    This particular Rose class doesn’t really do much, all it does it make sure the attribute desc(which is what the look command looks for) is pre-set, which is pretty pointless since you will usually want to change this at build time (using the @desc command or using the -Spawner). The Object typeclass offers many more hooks that is available +Spawner). The Object typeclass offers many more hooks that is available to use though - see next section.

    diff --git a/docs/1.0-dev/Components/Spawner-and-Prototypes.html b/docs/1.0-dev/Components/Prototypes.html similarity index 99% rename from docs/1.0-dev/Components/Spawner-and-Prototypes.html rename to docs/1.0-dev/Components/Prototypes.html index 032f7abc44..093215cd71 100644 --- a/docs/1.0-dev/Components/Spawner-and-Prototypes.html +++ b/docs/1.0-dev/Components/Prototypes.html @@ -153,7 +153,7 @@ convenient for simple Attributes - use ndb_<name> - sets the value of a non-persistent attribute ("ndb_" is stripped from the name). This is simply not useful in a prototype and is deprecated.

  • exec - This accepts a code snippet or a list of code snippets to run. This should not be used - -use callables or $protfuncs instead (see below).

  • +use callables or $protfuncs instead (see below).

    @@ -402,13 +402,13 @@ the api docs.

    Versions

    diff --git a/docs/1.0-dev/Contribs/A-voice-operated-elevator-using-events.html b/docs/1.0-dev/Contribs/A-voice-operated-elevator-using-events.html index 3a390e8f62..8326924a31 100644 --- a/docs/1.0-dev/Contribs/A-voice-operated-elevator-using-events.html +++ b/docs/1.0-dev/Contribs/A-voice-operated-elevator-using-events.html @@ -15,7 +15,9 @@ - + + +