From 0639066d1784e4524677f3fee092fb44d10171ef Mon Sep 17 00:00:00 2001
From: Griatch
aliases = ['del', 'delete']¶aliases = ['delete', 'del']¶
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 '}¶
parse()[source]¶We need to expand the default parsing to get all +the cases, see the module doc.
+func()[source]¶aliases = ['parent', 'type', 'update', 'swap']¶aliases = ['update', 'parent', 'type', 'swap']¶
search_index_entry = {'aliases': 'parent type update swap', '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': 'update parent type swap', '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 "}¶
help_category = 'building'¶
parse()[source]¶Breaking out searching here to make this easier to override.
+func()[source]¶aliases = ['channels', 'chan']¶aliases = ['chan', 'channels']¶
search_index_entry = {'aliases': 'channels chan', 'category': 'comms', 'key': 'channel', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶search_index_entry = {'aliases': 'chan channels', 'category': 'comms', 'key': 'channel', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
aliases = ['emote', ':']¶aliases = [':', 'emote']¶
search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
aliases = ['hierarchy', 'groups']¶aliases = ['groups', 'hierarchy']¶
search_index_entry = {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}¶search_index_entry = {'aliases': 'groups hierarchy', 'category': 'general', 'key': 'access', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}¶
aliases = ['stats', 'listobjects', 'listobjs', 'db']¶aliases = ['stats', 'db', 'listobjs', 'listobjects']¶
search_index_entry = {'aliases': 'stats listobjects listobjs 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': 'stats db listobjs listobjects', '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 '}¶
aliases = ['delays', 'task']¶aliases = ['task', 'delays']¶
search_index_entry = {'aliases': 'delays task', 'category': 'system', 'key': 'tasks', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}¶search_index_entry = {'aliases': 'task delays', 'category': 'system', 'key': 'tasks', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}¶
aliases = ['co', 'con', 'conn']¶aliases = ['con', 'co', 'conn']¶
search_index_entry = {'aliases': 'co con conn', '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': 'con co conn', '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 '}¶
aliases = ['l', 'look']¶aliases = ['look', 'l']¶
search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶
aliases = ['co', 'con', 'conn']¶aliases = ['con', 'co', 'conn']¶
search_index_entry = {'aliases': 'co con conn', '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': 'con co conn', '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 '}¶
aliases = ['l', 'look']¶aliases = ['look', 'l']¶
search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶
aliases = ['l', 'ls']¶aliases = ['ls', 'l']¶
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 '}¶
aliases = ['@calls', '@callbacks', '@callback']¶aliases = ['@calls', '@callback', '@callbacks']¶
search_index_entry = {'aliases': '@calls @callbacks @callback', 'category': 'building', 'key': '@call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶search_index_entry = {'aliases': '@calls @callback @callbacks', 'category': 'building', 'key': '@call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶
aliases = ['recognize', 'forget']¶aliases = ['forget', 'recognize']¶
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 '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
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 '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
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 '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
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 '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
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 '}¶
aliases = ['wait', 'hold']¶aliases = ['hold', 'wait']¶
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 '}¶
aliases = ['press', 'press button', 'push']¶
search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}¶
aliases = ['smash', 'break lid', 'smash lid']¶
search_index_entry = {'aliases': 'smash break lid smash lid', 'category': 'general', 'key': 'smash glass', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}¶
aliases = ['press', 'press button', 'push']¶
search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}¶
aliases = ['l', 'examine', 'listen', 'get', 'feel', 'ex']¶
search_index_entry = {'aliases': 'l examine listen get feel ex', '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 "}¶
aliases = ['push', 'shiftroot', 'pull', 'move']¶aliases = ['shiftroot', 'move', 'push', 'pull']¶
search_index_entry = {'aliases': 'push shiftroot pull 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 '}¶search_index_entry = {'aliases': 'shiftroot move push 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 '}¶
aliases = ['push button', 'button', 'press button']¶aliases = ['push button', 'press button', 'button']¶
search_index_entry = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}¶search_index_entry = {'aliases': 'push button press button button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}¶
aliases = ['hit', 'fight', 'defend', 'thrust', 'pierce', 'slash', 'stab', 'kill', 'parry', 'bash', 'chop']¶aliases = ['defend', 'stab', 'parry', 'fight', 'thrust', 'kill', 'pierce', 'slash', 'chop', 'bash', 'hit']¶
search_index_entry = {'aliases': 'hit fight defend thrust pierce slash stab kill parry bash chop', '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': 'defend stab parry fight thrust kill pierce slash chop bash hit', '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 '}¶
aliases = ['l', 'ls']¶aliases = ['ls', 'l']¶
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 '}¶
aliases = ['search', 'feel', 'l', 'fiddle', 'feel around']¶aliases = ['l', 'feel', 'feel around', 'search', 'fiddle']¶
search_index_entry = {'aliases': 'search feel l fiddle feel around', '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': 'l feel feel around search fiddle', '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 '}¶
evennia.prototypes.prototypes.load_module_prototypes()[source]¶This is called by evennia.__init__ as Evennia initializes. It’s important -to do this late so as to not interfere with evennia initialization.
+evennia.prototypes.prototypes.load_module_prototypes(*mod_or_prototypes, override=True)[source]¶
+Load module prototypes. Also prototype-dicts passed directly to this function are considered +‘module’ prototypes (they are impossible to change) but will have a module of None.
+*mod_or_prototypes (module or dict) – Each arg should be a separate module or +prototype-dict to load. If none are given, settings.PROTOTYPE_MODULES will be used.
override (bool, optional) – If prototypes should override existing ones already loaded. +Disabling this can allow for injecting prototypes into the system dynamically while +still allowing same prototype-keys to be overridden from settings (even though settings +is usually loaded before dynamic loading).
Note
+This is called (without arguments) by evennia.__init__ as Evennia initializes. It’s +important to do this late so as to not interfere with evennia initialization. But it can +also be used later to add more prototypes to the library on the fly. This is requried +before a module-based prototype can be accessed by prototype-key.
+evennia.server.evennia_launcher.run_custom_commands(option, *args)[source]¶Inject a custom option into the evennia launcher command chain.
+option (str) – Incoming option - the first argument after evennia on +the command line.
*args – All args will passed to a found callable.__dict__
bool – If a custom command was found and handled the option.
+Notes
+Provide new commands in settings with
+++CUSTOM_EVENNIA_LAUNCHER_COMMANDS = {“mycmd”: “path.to.callable”, …}
+
The callable will be passed any *args given on the command line and is expected to +handle/validate the input correctly. Use like any other evennia command option on +in the terminal/console, for example:
+++evennia mycmd foo bar
+
aliases = [':f', ':q!', ':DD', ':UU', ':::', ':fi', ':u', ':i', ':q', ':uu', ':j', ':<', ':=', ':r', ':echo', ':h', ':I', ':dw', ':y', ':s', ':S', ':A', ':x', ':>', ':w', ':fd', ':dd', ':', ':!', ':p', ':wq', '::']¶aliases = [':<', ':DD', ':::', ':S', ':uu', ':q', ':I', ':u', ':>', ':j', ':A', '::', ':s', ':p', ':f', ':dd', ':echo', ':', ':h', ':y', ':r', ':x', ':UU', ':q!', ':dw', ':=', ':!', ':fi', ':w', ':wq', ':fd', ':i']¶
search_index_entry = {'aliases': ':f :q! :DD :UU ::: :fi :u :i :q :uu :j :< := :r :echo :h :I :dw :y :s :S :A :x :> :w :fd :dd : :! :p :wq ::', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}¶search_index_entry = {'aliases': ':< :DD ::: :S :uu :q :I :u :> :j :A :: :s :p :f :dd :echo : :h :y :r :x :UU :q! :dw := :! :fi :w :wq :fd :i', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}¶
aliases = ['y', 'a', 'no', 'n', '__nomatch_command', 'abort', 'yes']¶
search_index_entry = {'aliases': 'y a no n __nomatch_command abort yes', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}¶
aliases = ['a', 'end', 'b', 'e', 'next', 'quit', 'top', 't', 'q', 'abort', 'n', 'back']¶aliases = ['e', 'a', 'top', 'n', 'abort', 'end', 'quit', 'next', 'q', 'back', 't', 'b']¶
search_index_entry = {'aliases': 'a end b e next quit top t q abort n back', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging\n '}¶search_index_entry = {'aliases': 'e a top n abort end quit next q back t b', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging\n '}¶
`vhv6Tf|D9Y>Ht4Hk&W2$k-JHP1<8B|A5{YXyk}kIUDI#+4WXHz+Ff6u!A?=DoC|NEzJfl$4 zmgi16){qKb+9){cZqlc#wjfMg20^R)jz}Ghs$UNqvTp?#HK+g89~4G!vRXBRDL5Ql z<4ou6C;X_FSosW$JDeHwEUpBFkA7f_KJkN zjV>qyS7KS3=z}1wM3xsm8ZaMFPNudal7Trmd5aLu47RfU>)%XXPn3Iov$gp#>9M8v zukvOqdX^ZN3gumeU#BI`2@Hy0<$nU gh6~U-GB#H>0SSMeOz_{k z-2y!e{*DAH4t lx7|z|kvW$u}{NCbx`s**CEWCASUs>sj_UXKd*r#k$rqplhd6BCkeEkLq`@ zQ4C;w@)txjQ5 r1eaH41HrnA>m=pl`-5r(c EVw^%}ms#?i={!tE_V zT!Hl-70lnG3$3azsg6{6d~IQ_*q*n@xdo61lhH#fuF{gOAjwaCCcJs^r*FwYcGbOn z5hiWUL0*#mT97y8AP@0 p~U zSXd4%I&B!RR{8NKS!Q1xmtstSp2rK1#^qNwI7J{EC=EfxD`vR expZd-k>Lo-l9jT|FQdG!gF??(3e2IJB>9+@^1ur zhouBeRXE&^cZ52Wb&_x941gAHB8arBQ4#Mj2`pM9sETD`h;)&^xL0u7$!%ekN+!&N zkj@F6UEoMS$y`N8l}rX?hFHaU1C=d`HCl23^bT@2FO}7v0e8#qLhqAG(r}V^iM@AM zEKs;qU5F(u2h=j-ehC)ARX52vGR{*OuHH{lpigy6v`tk{%UDnh5~%CMB-tL1%mWIa zQz!0z$rYn+El29yMyjz%P *6ogMXOTO$~ov*dL%LldRR{6dST0(%sluk1~hnD37$QW9ll6&DBZ zu^r=cFiSk=osr>L#mU-2yw^4o^APJ)ZaRY;4`m$z+EI5H&_H`;{aOUq$j!AcSmDRO zr#omnP* zk9j_4Xu&yQ+Q8`iQUm%7YT}OiNIjlF2 zDtX1ig;-nWRU)09s*iF&8@JP_H-M_8`VVNq;3fx#JCwk*9_iC;U5~|H#vT!{`DmU% zhG`X6CSbh)_W=|_ CCatx)!2+od3{*wzoHelX_@4^i~Uiy#E$Qtg#r5CXMiR*S6z^)7- zuXS8zv7&<%bQ2Xl#R!E<0Ys}=Xx<>2A!AsJJv4xFY-#aH4^aelhO5sUbS(GWeY~)3 z(t1l$ TD`;f4m_-qaO)ly+U>6e?rqa8A55i 5ZKI$+B~$4rBcd{1Y)4zZb~JX52rBm6y1b6jbi~Q@4&pdlu;U z{ag-=nX!d%2D+6yb`pC;jF}~}%#2X&zY%4+DiOAazVUze9A%;RPhoi+HJyzW94J@o zSb{Z>pw{KHj@ayWh8QHG69`O>c?WYx^${P+dG>**9JPvM+99`8J8|V+i_Brt_Ljt^ zQfjzZbzUMhsJ*WooHAOzdQm&~dh#HF>!#$ap~YZyf>&*y>mmD@kW(Zgm5Edg>^-I7 zU!Cy;O@Dsu&ST$nO@HdOOfhJ5|9$s5(_TR?OuQw)1Zo77fvnG*k<5SYLb6SIHUh6V zBZWTsa~s8QtuTI@$^T6B+ffb3pg&I!gxzOdNH34w*sMNtliA0+{$|RQZ-DBQOvO@| z`Dk+4=)Z2-rJ5fd)F@`AGQQ=^62@lWaXqzSJpOxo38yde;Q-m(%Ta6}=*I7Ka^}4X z0}Jac0W1_QQl~3roV;%)?D-(Tu)Vr7RAcbs(5-FlYmrS$+9lpx ;5T*=>p}A+g7`<`mYB&hWr1zvH{L% za`@&gG!6Bq+X9eYJ};^$mg$G~Cw726!#T3KKvH&2R2wTL_nh~-{gpYcbt|TAu)Ud$ zM41EUA!z@@ifFBHX6B^rz}1uf^ h-;O53 zDJQpHn%N(79Kobn>)4sJR13dTCqsJ_Yuxdm?ttrJfYg$Z%MO`M?@1e3Gy}+Scc`@B zZEpU_2a(@mVdDLikAYoTcSYX$m55ee?#XF)|Fu|+lI;$xuT%zUFr=Mai~R2BhziD2 zC)Btfp(2>}b5xp{%d#QgEM`XtX3HmQByXgxAM$us45Gt%o$${L2_1 zq9Ofag(o<2@|A;0lv1K;s1m5?Yg3W|iz80R$%* iWoW0(saN1W*w{}A@f)1r zUdL)xJZ;tHg;*BT=9y#`b0d-8tEZWtOFQ$QwT`g$_Gw!_8*U _B!11bFMIO zYoeMbR5z`ddgXi08oF46!6^?n1cA=o=&S*C$MtVht4!_>qLuOCJiiDvF{|f {PYQ0hmR-00kL(e~o0l>qT6rlYV_|(LEDw z4dwv(NYjaKY*{+rc};-Vf++)iB~(a@s@1{kmx~u3GSSi95e9#=Ni?7RwVTe5_E18Q zjH`TY?*1?U8+>zcQ^Tu%e>P|$A|c-{q2#1H{q{qo!Q@RlvR*1IeF5%4gx5pbYs2j_ z=8hv0Kk9dk3H9KY;Ut2x^f(bJ>B9;Uk$W6lH};6SS{o;J?Z7~nx5Z0edUZ7DM$%)< zRX+No`qYE=lL>ne=M6jk#OzF0_?vMLTiKYJcWUyy1x{@v#NdiB{C~{#0fQ!a`yF z$d8>$&R=(P)ecG2NZOccSn>2G=wR)y#Vm4E(Dhu$+B89w=KXFN1*8P78Q~Wuv-OBK zwn&C${>w%dzX5w*h##jeaAE9aqkH - {e`Zr|JS1l6GW(jk2c`ebn1lJA378Rg|h zbvq^=FqRpDJpB?C+Cs<7QP~O=xKNv1O!-v5#dIvge}uo@V0WNQ?|M|>SD~j)rA-o4 zmqWr3J1<-N@}n7Ly49by_*2h4ja+02R}#s62ZPPLv`zFTBLHxrk#5HsOoNqRZc%a( z4u}6{_&*5M7rx(
zDbS3 z^-Z*Lg`sbba5!1x7k-@p*$Z%(Iv9TZx)jC)@kgl@F{u`|2%PN=0e2Q#7)4>*#W9g` zT*gZ#A{8{pbP6`+?_#+2Xsm1oE%6B4(S&!7o5G=)fFzRFssq7bjG2`0Ec9OFh`Gwm zd?DbvUO=4&MkLU9d>sL9STfCTp`a4LIlM|`0A)8A)959PyyaRSUE;s#m*(@>r%-vW zXv(8cFo4)vvyxhfv!iW~>!^KA68tPMv=jj8=;acl)^=VG3dDSy$k-%L&$|obJZEhd z%tGY=W(5hT?>DHeB_4LQiz0zrq^!5SmN~`6Mlmf(`RX;&QLMXYL$X0}Pd-+5X!1 zmRmWs4L#mI8x!-(#MesPSgtCTwY+{Hv7-EV#qO3<$OTipvh%vt{)O|j~KT=$!<2exJ-YGN%MW@xO z9!hAhw&798XKutnuoskIqH4!-Q7$!hVt+bRU61`eVpm V{@i7fNDO5zhnp$3ioou KwoGgD@jnuU~S7HI!T~VZ7h0uHI3nOpaWyByLmc z;$|vG>>J0XcIta>!nexZoDbMN24K5nZ2nACrow An{h@K5YW<;wQ5ufSH#)(H`e3Ta zed2}O3PNJ!EKr#lVjdlH-G0vI#$S<(ceg|lJY)o*-EXitj?KbU<>f0c-W-#MX(Tp; zmr|J#Dk*FT1!goEm~+}d0g)L^7W$mi|2vf``T3)c8Cy}cQAfa_8pZQKmjnh*FPePP z9yH(Dfi;%C%?!y_T1EQC(XqS#d}eJ3J-a!U1j-Iq2R0>;4BQT13mi)nH5cIG{Ta1^ zHykww>yJ{9Xmf;<%|au>hdUax5Fv_M^36dBO+T70$`iDr8Xy-h{W3S>%iPp2bCqo& zyu}rX*_MMc&JXJdO2EB9mU_sP3hdZE@X_;~RwPP)>C~4r+OVVWymh}D4fhlODicp# zu6pBa`FQfYe7(39SyhoV&%RDyvbEtGV%GcCv$OiSeDgHey~Ah9-k4qZV)hR0=HJE& zE-1{@_8klWlYZF7fq=UfAb=dY$CHAy$caDGl!cX0AZ`#DD>K35Qeth$nf!+BOSNdB zW3pJ%S?HPJ>$k_3OvYC7hC70Vr7q8}s!xZwB#|lM-y{8)&tH{dfZ(WeS3cma?N-s@ zy>?&I;JxNvRpG7uP+j1i5$dO7vTOkD-|(C3ZFCaQ9+M~j=5GgjX55Ufk*uI&OkSza zHEO4+sYCg6{G|SGxj8e!!nfKXg*&Fo>d(Q(&oytaT4NE6TzLp_*9lc&h8qN^A-5?< zVUFD?= |>%O7nv6Q+}8*YUS4VTyGd{wB>e&dGIgwj4v!PM7XY-klZ_o@=(RS9vBR$ zTtNr0X7L vNiXsX_epwJ%KZCJBG2FZJ#@hGM{bqiC z`J&F?EsFo;{;S!TS>P7~f8a@rA9+p%e5c9i9myZ75e+-=sw9Nl`mtPHHR9^s@r*~~ z%kuu!-tU?_JPUrsO~Wl4nnj8f&n4zaW)ZVCEFj2VFVYc3Up$JyRUni T(X!#T2#zy$ z%qT}vyLDA-&nRTJp@}Iud3?SZ2e6JGNItU1_5ZZg9$g%1i3>5~BIMO_Vvo-je|Nk` z3}7K;N6nw>!`;h2()gpSxor6lxczx-xqIte%omgO95gApM17Kd{kp^-gsb>CWqi5w zIANS%Cdjtd^SzrD2SZcoVc?@g$kz`db~|~yQW8Ue9a^BBfc$tkU9nRA#KO=L2|d31 zioSEb&kh#%fh@9M3fekcNJe7iaxH4gyn$?Cvk%OwOey`7u*s`AqSI>@xKxLiIkPB` z^5%-|q9- bF-fN1Vud8pBy(N`pI J+)>@?!3?R6DWsKhrFcmQDy6D7NzOAr*UN?rb>7Gd{d@#h z=a(~Uh>fxvD^#uQiM7?#yY9`ifAatGb#nlACNz }yf4=hretID{cqJ`2k+tIk z43P2-TaLa?-+YpX@HH`RhT~8)Fx$HFm$ v41p*eY>>i!fxH0hG(4DtcnjP zF+6*tx^5LPI((>}otVs<@h5l0ne)NG+6fBJ*YUJEpsOYUh=Nyj@^4*4^DW RMsIzIUjx?YI@l`Fmt9 zf+?+3o?4iZ_A9(i)r00&O89Pow;KFqO|!A(FID^+-phJD?9us#B_vZ0TtM4k@q{E+ zs&Khjz*OJ@V_YAe%~b;V;5Xg)8n6603Uv2`oSTAemp&ngN99GIrQdgnLB2ZrZxlHh z7)O3%@{_cfTRuZLkqmaz5o3!YqO@}ZosmT0pF_lH3{17Fm@clYxuUd~ACU_5m+YP| zJufaY7`FS_CLqES&p-9CseMPOtq-<*Lk%&~a}qEC)fe!4vb 5=!K`Rl3nHu1@>RDEHDQG(E{nYq#{Z!KJsP?w#c1P=bcA@vN znDRT;z7y|p-Up{o=G3I5`;jp8$C6vx4 U@YBR7cQ_kRNjwz1TB5?BUBFn2d!bB9I zuf<7=ieh$pA;2A7nq`HN5FUkbg(N(Tqi{v&UzxMR6Jgk^Je%EF0sXGS z?Js+_#+KrzNV9jqTOV7Ig^mRT+AG4OW$*?K_`QtTik$E9*!sUPLBSS^S3SXichs1{ zH10G?<+$DJ1*m+Y_FK^gQ}2Hk6Sp0vW22Uc&9sO22lW2Qc e?s7A9~t5#NXW{i1xhn$<0N!Px@Z;*Y_G2Na zLZp9FP8nn=5Zh-$9u}s~7P0c=!GjQ4hMOue{?%s7G{GkUWw;$x8 z5I$5M9*G_SfL?0KygOGT#_=4gr3bl$SBCEo6YkzyWqI1ruUtuO#&zm1r!jBW7%-&z zH4|r@T4tH*U(=62uVDbAkOn_iJ{q+Nn5e!D#~WyNj*x*R=n>5GIt-gYl|LF1c8B Ad5otiq^CpCR$d8)8N{v(MsvY3CRS85^R7;f0wL#W!@ zK1cdz6Mi|(nh~len|3uNTmID*HZ0BK0v?I=Y8#dS?8nsyBI`A *OB!rL!K*kuPHA-)qy#Dn;yMJ=x;7cctK#(!z!zqI1E z!J8SaAcGkBexok+VKHtFXv}LdUcuJfq49&;!paBRX(Nc9gMHziX6a-{H|y~BeR4sb z`!&(z5I`qe6u|{t0NU9Ei({G+MA5Sh+HuGr**HjIc)TGGb2tKPG~so~=)ow;;uxxt zC!;F@>o4NR6Ks#xnaZQWXlPfy(Yb=xEVDlQG52>7SAk1~aagM9MuuJX#Y2DF#Q5{M zgYro%)YF|sLWy(nnYYg}0Q0_tp(b+!4Wi1A4%k7_x&PSfseaLPV)Y9``=m%rWnrtS zmrrnHjO1C>rBk_U Qpq~y9-kbDt {I@|8LOue&5*s|*C2OuA${trG{ani=#b4n~ zMfAx*he@ns!wYwu&B($Z`c@^KnXB6dIQ2D%gQKq-46;?kp#EkbV_Z%GIU6I9QuCNy zhZ0}Y*hJ9T+lUi3D;eyPsf~V#zXcpFYk+8>M5QTLsK>gv<-^&p&c0Q{MdG D=yKBu7{5UZC8Dd1wp_3?3r8U1lL9gkP7rC$JInUkIriOH8Og^YF+yJ%% zm99NA92biYO%L)nb7@MCB6r?qv;o-G#>1VzhW;2+&q8a&%khMtaBDm{gOIkdBd`d5 zEYM&^_gKB^VaQkmCdE(A=TDvbOvw&wH;lV82Gk?lRj;nNkZ7)NIi1;^nBlj-Q@^;+ zlRTvE^K~ZNP_P?mNPi9e{JoN?4*&`jdA+k3Dl4LUo05v7c7v#h`Si~X{bh}%pp#a2 ztNliHX2W_VxPqw|iE{-P) 2fpQCfWGTJOzk&~DI~Rm%ZR@yvLdNuKZ@#q>@Frt=Y6MR}Jx z02=~XXU0&mYoFBK{Jg%qIc)B5ECI)2g{3r&rymCzIwP?f68({C7Wjgan874MH^-&3 zTt9*!&&-#4bFjoC$_pVuEt1E(O|itCYDOS*p6NbYVZkf?%6)%kaP2bu(^_?00a;m< zm3fc*<`{BLfB(zf*V%>z7^KaG(tDmM@242;!n5DyZj}shGV;=fdLHrpd>S{Yn%cZV zzF&99(8zj>YuAhyuVN7@X|udjo@(8+tKueC@JZcctqOM*fWn^xMGGQ_fvE-C$yDP) zKKPDvE{XfepR)h2k4699GKmuNGPDX65?ahP%Sy2JY9VJ5v*P$`WE*bzLN`69XB?&- zYuR1unm#o4M{R`$##pr FR``geg`B*LbyUilD zYTaj^(#;4<5BB<+Wx>AGA1DRZ8 Rb!$T_MNRQK=j4DzwBRq8ETHio<72|4+! z1%z}uo2twbs3A4azyl5iJD?7>S2c;ZsTkS5u~X{N?%KJf%S7nD{_D}=x0&CoBFyQ< z;A1TFZtu2LYwk@0F|gySX3R-@RbBdkwUYd-^6zTxC@>hZxlfqTiSb%Ee`fiQb_HLv zCyw?f{73Z+MQsH(!E!Yb)aZR}Qh$B9sXM8+*6Q9|fEzam09_-&2)u>;oX5D(v0j4H zjUQKUGNn>kh*T;o!Q>1n(ERIK@v8pRwZ7Rog0+lLxUvLBmADirUr+|AL{kQtA*uu~ zn4RTE{~Q(|DvKx1NDfY!7}rl3A1i_`I|`yUHWIfebD{|wBFq{o#)vabu^3fC86QQ3 zULkR>8ZHq8EZQ8;nAi|tgz3^}$dq6z$Q58JP%TBC6wgIMQ7=ry#u6|0&fqTuf`3>k z`1_!+r-E&zTd?bu8W<@P+~ypB{)W&|x~Fegbwwe0MSh_kHE= sS+9$Mjx<*pd zJ8xopA2 VW< zkQuC)9ky!EuEnrkeYx$uEF||5z|X)U{v)7)!PG&o+Z?iTyJaWx6j7(2*gkSNH2pok zeDHT>eKASJ_S%|2sDenLk6Q-SuEApB-h?4nl%@m-==TY}wX$E&1>Q%&@e2_Z3;Z;y zeXp97xXLF25sX=*|9DfXPsOP}2xlV{Pxw{Pvo#aDdA $h%{b& zaCuUkw)94mpa0Su_X%wKgJ-g0@+jlw{!XpK7{b;2PiG+xzRhMKo+{f>x}MlWFh*z& zSj|Y@s#*h(_9yl@pR*_BM;aoe*ii+VQ^Azz(-86nnXrm9*|6!Ng6RC&{(h?Cr&e%( z-iwlFW?ctfWEeAZ$Hnj2i_QIhzQ2DZ0%1()uo%4D0-*?8 66~x$@qXYuQd=>KD18F*vI#{Dd_Phe43#6@MH0&0MM~nT zi`6bx$jU=1KN0m|;Xvfc4$Y9!Dqq&p%aZeik&5Ov>(P@M_^C>jjc#R?QOwyO3#uSO zeo(to(%=X>QqpAMgR6WTBq7$LVT>g1CFimHo%<557Xk ^#9s>JV*ww^_fl1 z`$}NwMW#Ilv@B~9FZjAaeG<#~DbO=-a=Y9!5sZCb{=A&De(N>ZHA~#(CkF0qHrmQB zn~7P~hyw`1Ghbnjg8eYPU*+&V*JM9RJweS6f7Xuet2uz2eWSrcJk2|2&wn})v=F ` ^Ajyt@S^FdI;j>p&03tbaj7$nO zdyMQaF@21DQa-ybo#;v-2@F__M;n~v&|^M$2x!rz-H2!FGy?-2cLQ3I;sXa-l0$qb z92i*eh;~U3%HUtGaRX8gg=L`Nttwq(^_w(Y8dIXx(cz+E2nV6OPSdXeqTG>U)p%b{ zCAx%CC7KHT;>)R&Nd%$WQaWL(FvRF{t5k*;q}y;{v`5lpWQZ%(RfZ2_!RSk1z!t8k zFVPifo1;kp5;bIzAtiI@S9Ap|#9*4J68>ct7+sMxP^scVsFmTS{ uCI fBJ|6{iG1zs z6#^-7Ann3BSQ6D|F#C|TXE6Q}HD@p+l2z3(Mf2SqY0a3RZDq}vCS7@7tFkfLzobKZ zw0}YC3=z3dcCz-z=|A!K6`|GPxh5=?AP|g}_J%LD%^D&`n}9E8X7lgMnJs>5X=@q& zZTcsz{oeFX8#=IK*)-n-a~z~1LvXtV$Toff{phaI-rw$z-||P=mo_y|b)v|o^In~5 zbKIBa5g&ERg9n|oGL=5UgEJIDAC@c34L@dA8KT$-&=W#G5k5=s*T!oOJV=2MXHTS| zb(az5_zGP9sSv@usBIJ^Xp+_CWt5=xV-%5*`e-Qd3i;G)l%OU;5Dc*4AS#mpji-z- z0#n3KvJ{A+uYd*RC?kxs3*0&Lgz2*6C#I5H%N(HzdGQ9OiZU1{rVieIehJ <3VqBgc=KIb7MzQj8kazl0eF>Bv9lIkfIb6 zlPlqm0-y^Ta~LA&`EE4G{2v5~(FWuO%p2#>1^;lw@(r_>C>CL5k^xarwL%agRFkDN zmB=Prum-*`lCgTeFsCEJX~&9M#5GiXrG2AJe!+hzJpYiB82)?wDqF@6h0Q^xeR)l1 z7;{jnFINIe_2o*2e=LDbvFvoogJolOt+9h(wXd;ftzFh^SDpAOJs`pB*qAEJG%mQh znBJ3VHbX6(J)ksJ0Gue?TC8;@Dst9?o+5JA;L7oG)?(rPUn^r3cp-34rOJ6y?G+L} zo$~3w?3EU3l^)u<-gk&$A;qP;YY_()9Z@I;^Ur24TExdnz17|ATPyBPR2xzLC)^Qw zDvZu($i8^z>PRoGn=%3}--qJb7AvFa7BxsO+zhS-1!#K#DCjgfLS{A@Jo~Y~$79En zps>!5$FUmg7&Y{Fty$suVT|)qk7Hii#LH0`9t|sWVh@CW7ht?(cpq*CG3(zh1wGMn ztP8i}h^&>iu(}HlKB(~bI}UjM!K_C3)5^3V70X#kIsR4BA9y}B5O+8$qT{ITf%`*m zqN(!NBSE7Hpf7KXbpLYbnAgg$RR!CgQaTn-Unj49Cg@g^&t6s=q!ZPtykE1}d=glS zr-Zr^quJgPIr66ryJCMjAI VZCf!*W>`oW^lV1HGd# zGCxx^%e@ivob1pfcSE{rEw!Ujk}l{?{pT&GVaj*<{25ZtfH^S8cKRpr)TH&H zSGx^_e=oCy^#o?wpsP<$qO%*`I7w1p?yf|0c`1J@ Zguf?^fYxziJ z(@lMH&j9D$h~`JNt+9OaZChjc5wzqE(HZYWcUZo7*Qd}N=}LL^kUCtv)&Sz*- Y8B55pHvmk4y*FT5Q8U5 z!Jw&wDRS~tm;*N^FCeN^62hk)gd-s)7lhMglkHFr*r~yirp-nPPz`^|Sl5-0tRf-? z&%_9)%G&C(T`U3YFgAm&8WYfD s8DxMnKs*3j@tZfy~jcj4TIFKgPKw4W7Zd_Moy`vMif5xTJ zwm}n1+dva4+c-cjY=cdw>xG{r%2KQPcRu{&to2ys0f$VZ?gdY*@CBSu<%<*KN?*|F z)PC$kvdBxV`mfUwh%}1VxHM`vXkw)sXhM}62gns}u<6vj@RLMYYE|EMyzf2NY(hfQ zD17YzvCh}%glb>AL9Y2VJe~4Sf4xW;gQ>H?o$ctSk-ws)(Y+=U3tlr5DqZu*C9bLI zv_0cf1XyY{tF;iSqk!!yPN(WM6=1jo%9FsslSq6w)@t4U{wJ#{+E=h9r+*Dc-jFAu zS01DfhM4K%ac&T|-zQ@77);czoykdJ&Z1Mrnkoj#OP>jvJmO|YlDvBAf3ErarE5O% zbGL3JeCl_ka~Y1X@8s#-PqQXZB!P$t@u3dr zcK^K?yPT@+y&|S67uGJMFBR6_5GTPCbfOfv_M)0P9jU>@sc(%=Ap7q-UX?vn*Mp^{ zlKX^DFZIcjbXuD{AP)Blo2;On97v$GY10|%A=X#iRQh}ENO~o{fA%SzCSUtPtj^aC zB$SDX31W>HXlj92FW!$jtV8LgVI4`N3ri<$pq{W33X*ti_7t01l(Qf2N0#e>>%_uL zHFW)opHLvA1L()l)Z(ySydP;SGYb+6BhB1`6MB*o%d(RTl5lRtYw-IJruO8$iF2BK z@-76LV*bZD4?0nde>u;d=AtCgqaakR+TqlD0~!4#-|b_}mp*o7vFAbC0IjG&IDolU z(Jq8dJc-5zYAc=_K9x0`9k4Hc94xk&iKN37Es>7I7bjp2RGj&5xCch>c+N|5KDo#> zHKMGFB#&*u23=YY2mf8;L*O#28GgVyG10t;8Kd#+km;iFf7IByqVXQkmDk7I$XTK= z4x|Y+kXf36ZhT_hFFI{cG `&o@qp6ZUO#-5Mf8!I4K8??0!ZbcJ6Q%K)Pa4lN zHBA~n!lwwZlxci&;`j2A|Jl-N+Az~8+wv3W+maKj+z18X@z#m=pg&coqg9_G zrqiCLCs3Z|Cf1$yA&KfVIj!cj3-3X3vKIY`53D4v$j;bw+FM*mAixElScQutNu;>o z)9Ufqe~+Zmm@+H; SW`ad$XYgc8 z&d#t27o5%X{J>?=thb7k1+=V>kkX0MSc;`?e|j8>D2vUk6lrXMr_E!FA8C@xIX 26>mj15UG2O zOCj(hep-zmxspcaZ@54xwj&P+^>)OimfW-xAd%!&xFnKW^Ak&M?Mfoaop*s!a%&GL ze ~u2mOmB6PxBL)K;e8k(r<`ivuVUD#*fiPV;+U-_rmYlx_nThUS! za%+6rGH&fjnj&uP0b#_ivBX(+jYi#RYi!ErT+}sdip_l}SJ!TCKe@hEZAJ1SpMvF* zY+n(!Oy8>GEI)Uh=v>6$ZT?UB`FeRef1s|fY+q%1 XQEO<;BD&-tUQNpH3re@_`+ z#=WcTakPjUdK_4WxAU3BV5BS;qASWq7L7eJwPtPGiN~^VC>7&Kt__PgicdQtj&!1C zlm~ai+S}FJK~eLHp<=M@xGe8^*4bVF^c%b4@@Z!3y_ws?d~s{6s^iLPlx}2aQ^?@o zZP{m!vY}AWXnajpZ inmXL*me3R%P^b*f<5Q`t3I(T+m?5KWyxOB-If0Y_B z2}-#Qe>xRV1Z3{oJJ&aM(8nvh(Ho}!ShI%hZKS_x!CvHKNe``kR^8Dzi|KQv_iM|} zCa+jkWrH{x2staC7{)`{6d9ALpcOqHU=VGY*VBmvh>Tvw^>83~WQI2G_q bV)FxGW&OEq2+dX-KbkW)ySa&jY+^=YjJu^BV)$VMbj?ti!Ai zY!4lHNAC|R>U0j?^`eq4W@A@D+is-4+3qDf6Wx%Qw&Rbb7<**Yt2l=;e_TTA-AV?^ zzf-Y5+J)AMJ(C&O>Q);sz~uQkCQy$SAp^OzKLgA@@m;3#P*Il+bP}43+XgO@b@^+K zX 7B`$_6wp`%ylC(M~UiG77Anp&Nl-&Ve;We|2Hh<<*rA)ye6~ zuk!QfxzqDP59k|^ZR>w5-k<9lj vz%$ zyIb8Z*dpy;D%K)RU(Run#xG@{NYfX$pN+I#35NE(H}a;Zb)fAA#a}GUq&`A8J2f zTt5`G>QI7w;%XwQ8Ok-Y+gs5OJ%fL yPSY2y;`UdBPx9MLqM<5Q|YHjj4$J@0!o<6C3K!KRO+ z9yE8ZZ1 >s~woXBy&tfu+ z_B`yerheR+e+5S>(V?PHlF`;oo>04XiR!%i3+c(2N3Tl)9Q(W}@NZ%+#XuF{GC|4J zwrjtSYyZ#m? +r1%2_I(U{w;#hv5iQAZ=)Bs}sVyJHQSHjC9oyES zD TTnqJZf=}5JPMJn5aGuwtUASUwq8Bxxdu~PXmK~?}2uX56Jg~Cj z#rCFNu^gwq`cUJz-XoVHnt_zoSGF^~uat=>9F74j+t)&;DGk9bI-GW9i!<)9hj|nL zv!F1ke-Ao^8>{F^++qmRxFv2ZEseF_G-7OWuG=BHCyj ( zfN%)zt43BHN;_aNUkULG(R|(SH}`^sq4bw#e*(uNTu)U2BW+A{1>;=a^bQQ8drEWB zzTl(q;|;Ta`GkVjxxC`w^(-Gl2<`>9>R=Z9$N+Pi>=@1I593gXC(LAnUBu5_K`NLJ zvaCVs6FSAAQuOrSY?=g!OHqA9c!;@k3#a4b3jG;P6EP91cr&BNWZ)HyNIj+2I&L+E ze?RkF?Q|pq6%T )UsG;ui4|$zV`g0-0c-finzsi(tF^kUV@-~hH_S{s%qL}b07LWN z>@S9#`t(#jyAv(aW5OI!yL2*4j7{{>f3(nZV4`@)?ICjr3r_uVItK-@d~-VfB+597 z64a>m#-X<{HeL4Njk167_}M7Ss*1{=hmK`s^B`~-&U@!ZQ8u>Fjk4{!lWr8mp5uUG z+wZVfZ#} zA#EoHp$f3K*HkQ*yt$lWbxF;e(aDy+(AnbE_pjGC^21vaJ#W~>;?>lxqH_MloxCF$ zlkLnLhCE#8EQp{qqTu)x(VF#aC=hiEsufwiWJURKX(P8#<0s2rfvxjrR+kM|1(u!8 z2n?7OYyz9r#VmqdTg3skx?Zgbe{6dG?L4~&4S@4(7W>nL8$3YEo-p3QyxwB|Gb}_O zlb4AK?DeXTm-os(cd<+1w_H4ZlFgE;V!O&b9p@N2p F#6qTDeFq5ssfH^oT^kaJCCY5 zC>X(t%+!epXmkCrW!>dXf5oFQCKU}L>jyNBYP{e_ob6 AZ7cE8y3cx-@#GOaE-_#KMi**OBQBn>%%e?sSHhm=~dLKM{Y3 zJ&r0yCqB@JN>#2Jk1oIv>zFrS%4r<`S6x&D_Sf6cVX{y$9z9iWf0|v*JUW{o?BCza z3e(@W_8dRC&eh(PIgfs0&+)Uy&sx2_=lJnu+di7hjEiq?%6!hMgE{9uo>2P%T{@wt zt%+fwcHQ $C$!ZM1X|Lf3z|`T7V7hDu-pLvamU%Uoda%pk5bSTv^N6#I7cnjG zdYKV8TFiI6m6b27e|R**6!O>X1&Oe=wQ#WMOAF&ejfU*^8^a3O?>Cf(BY}0+fpvGC zZ$K^EOapDxRw@z9qUdL9NF~_rQ9=ZL8uLcGcKm5$$zeEV&bXlN+YNScoj*zFpf}($ zV&!hTDF@MQ9ocvOa)-9S(d9Sh$BikNmssAA?GY+i+@&d*f54=wq9RRaloRnTPYH!( zZA_|!hN)TFRJ4nm@c5$4zpiQG=<3ZZaeTE&bB;OU49Jt r+3t3@2JLk*^_bHO^5xam&aDUJM#iD5q)}rM72Q<8+%uA zgxELLV?==Kf9x_al2<+n;y7*h1IF3h?gx(Kk+^~|==PoSp||;s<*bp`%ic_3# >6K~Qe(1+SYpfwlG0+Pp(fgy0v|@RX_OGUA1=&b4YP(9I>tOj z*ccLK$QS~6xEQmbp)#=kmuq`;b?s*TcYW;-`Ps20fBFjHVcWe88bxvJ$B$z;v~Z&U zYDr9{{)mlfa$X@bD$W{Jw^HW~$=~<*xDFX%CaCFdZ{)iv1VI#VRaPM1h~DmvKk%;O z$kK6Y^+XXIdsCwrPTiU@gdaAnu(G}SNR#n3DKzVs#eerC XE^^6z(LlE<%E?1 zW%1uUe@Vf~tStWSi3&|=W$`~eNo0v_rj {Ql3T~#8PLCnfCwI4Xx1)^|LRE^ zo8X7{w+)o}H{;V
S?atdxSIATa3Ua1wf_kF zu8|snaO#ST0ZdDEFd?pO)@TArSb4QA0WdDLe;5$Vw9PXG&aw3u55m`|?{o?Plv|@C zo@4%&wL(;xQLaN*Sp@f1f)KNWGEb5sGzd9AXa;_CYYcWNq#-ugz~W4gMZR54(tm!t zUS$5v>Q*{bPSaK|7+S7$w|Vv9=Jr~D`b{>A?S7wUWB)wE&$vV6gJ5=JSrvL8iCk33 ze=PI+>-n_z-}K3H#L%yzACQp``rnJH0O6 c~T`ZvhMqq3`WIyEcsI=TcUOY>7Ea&_6Pa~e+%Bq z0!h!W>bJ^`^|f0?#?iHAcRW36;o$shjGO%@)-`UA$BAHn%qk{r9k$#2r`K;ip;y<- zdc#-y*|83O9vR4TE>~fx$JHUTYmQsZ9M+E~R_cA`9qVP`a9I(b;H#=Q%3FSoQXTT2 zXB}=dTVcW7eypb>?I^*yIe+Ebf7X;t1T;_bq&H6C!9aGrZ)Gm!^jv)oG)+X`&xrv` ztcF0R(TPVTP0J%xq$P67$4Q_+OQMq9jH6PUsnDs8I&~J{c7-mMRI{?lroYMBq1rs7 z$xGg&qD57yMHKSkmN_cOOjy>fvZ9m~u4zyR8Q63AVc0kp1P*2zN3xY$e{l-l`jliW zR>7;RH52}@5IQwxcK`AhS>bK$7SE`$Km9@_l*`+tN2B!CSGdnmB6#zNNzg4bIsyMG z&GaBF`+CE2_wI~vkV@>B_WwEZ?qxo=6PL0yOtCl}-w82H1tBg;ZzfMc8k@{^hpmQ3 zP-$a7h&r>i+#VZOjCK7Ye?K(1MUg_)_P|0ch90Oan||oVd_XQ1WcJYsRpwJv%t1U& zr5t*mF#E9)h{_%~*62>@X#^D)X8Hup# O@(LrZ;4Q9lN!*cxEelln bt>q+X9E~HIUge!UXbRPX )s<;~C (px3;RX?y2bRx(*o>%@x)69M~*;v5FrV8 zUmCYzI0{#^LRN1n^`lWzL3770icsC4W4on}ql>o`aeOfwvRA0f4V5#nO^WAWRuIAr zyyUV{+}NX>&>*X`5a1bVL}D+B_4!5c5ZiP>eC4u5!UyO6e;-#uJ8qmj|LV$ZIm}n? z#Gpr&GnY|;Q^IA_M)jF!=c$yC)(f+tCA3+d9|X9~=Ye+()9b!-(G}T&R~0x#X$bd` z>%CTv!V%i~)|tRThEbk&CHC-&vAgmkndJqz;l60I%I>QPZn)#Bha1JT>ajsFJT^F9 zFS~w2TJ6VHe>vMvr{O@_9%R;owmCLP3em3(;Q>GK9YRXpJYMwZvaQO%e7LAtp(mP$ za=&%N=ox^YWz`$?u+@Utw7+qH>H4b8r(h3TTDiJ)_ir7s^rk`gt%!pOA-fR=!-`$z zHnTI#_FNf&x4v;0U$9;KI4%aYzg3rG=z@)J?)e;Se|ck (y$V z3yH~GwUwCcRjh6u?a3?MZK{PoI%h1aF&$T0ozg-v&OLu%z+ER;k+bbF5HO f3+F$`T*$2d;*6wy?5jKNjaDGO6o*P?Fa-PnD>!PK;vy;9o@d=$^HMeK=v zGw%WoF$l~X7zBp UF#aD7g~*+m1h!&!kk>1*0HP?@0~-tl((?5bWuQ2e &TF2f!4~btQUE3B2Kb&-SFq?=2^MkGcS3<8Y8al=;QOf0j|u zb|E$~b+r oYKLj=Q*u(MDJ9rEa1z;MU;3{^xQJkM7}^u*)rRYWgj^BTK?v+2WpMp#O|&!Mrt zzLZ_=*zS;5I<`2}m0#|zKMKbtf5vRt#pD(9Sxw?;+OOH*XM9!Ba?_NbdA|mTr)}T1 zhM)O|rJ{iGWK>sfQ|7;>O&`Ghmmjmc+ppQ@Z=b&Z_U*&X=X+F)B;0+z{rbOAAeGD+ zceWLR@iL^o>>_;(>*_T(Uc=0O_FLhcfjtd( {yEAD1#YtI%YDO(?>GfbFUBtCf8KpX60ld3G{mxRn=^ m-sL3p(?G+9PXk0nMTGsVEV@+SGNes53 1P;26T=MC-Z&p z931je*Wgf>-dNKP!7*EQFzFo}UdB~$OpgTGwm$hzrgS~bZ8w@lfsE}?)*Qur1OI%U zodfXMIsW98H_xuo_w3@MvgaLo?v_>DJ-6_78w9)Zzf6}{?wM%Ye{jQ|ddE0WmpTT5 zzVw?ly&VdRWe1bK(couX2E_bGplvsNFJwJdotj$yiz6|>{rB3}%xily`;X5Gs E{F~@y^-1O`vln~k6-vin^$M($ubM}A zZ+`j5;)?67p7R92e}%B{#Bzo;jjST&veo6h@fNZ}!^spy_n|9X$Nbvw*uKbWZKg*C zit>Ft9>38v0$;@VKHio0P#~2%??&=_-tf+xWiNkUybGU#rb&~y^v>exl~?a3tgL4y zOTL%XWSz2?X8lW(zZ1XokA0?g@XGS{q(t0D)b*~-VR@xv7 X? zng{V=91cGFYK7asQcGU4*4`!h?I67_^_Her@`HDE*|18cj3lZCeSB|HknZaK{*Qna z9D&BYcWwyfAU&)8;I}V>zg?ufx+as0WFZ05ldWVZf1MW3qufKl?B-BP+ljixhD?VX z;vfcFKe;de1^iB?nvd;J`O&eaSAWiA61(NVHP$T{QklGo#SxUW{{QipTUK_?b2A(* zt0RC`wMaPAm2>;Ka&A9YveNj~w>DQf_`0_1A3070`3fcES~PBFnEDx)Kb8+KnFOfA z6EmjPP?PWu7BjYbnqszRu5WhvhU*(%edFGK{{4gFi$10KV!YpbH1Mgcs_gW+l7M9t z;(`ZWHD;!VL!g+89b?2^{6qiamkZV$Pk?W5#GqK)R+FS o@gRIMDg=i>%p3T}=lxO=k8t2u}ji!0Dcw< F_2Feg?7S+F>I+_#Nc{zKSKq&X^m#=K%8wCN zjSQv*mDJ%ho_~viXZzZDp&Sgb?h7iQpu9UlcxSvJes>l~cZUt-yK8XYoqO-v@&&)l z7}VEx3iG7|W=B6>SU+44%J#~MF3UTvCL9O%&-vi{p?3}rd98C?sB3?y87|Xipl+ zL%giZD~3Pa6%+_jzsuBC&>k)4Sd>qJ9K)(uw^tc vDw(l|;ics` zw4Z!;@3EdT)H>z^TOb2x-6!{jrx6_aZhX5+qgl`ye-0{#GG1NlTE^>Ze@xaLVrnt& zWYxQZ=YMNokEnTR&YPfy&cF#ze3#EhJ~+J9`Fh7UyIenqr_T`+C%6EP@0$l8dJbj* z5dHEB1kiW<0D!3$a+p6&tIFuujc9U@twRBbeg|rR0R0Zs06}^jr~$z996A9adXAt# zQN0FIpr9V(DgMZe{l%Vr%PIXO-@?j#>4W^AynoA}@@j<*;{}&n@nlw2;)xeG8rlbB zJpdO1i_mzo{Y!WO7w^JpL08bbQ1)Lrdr0!?)%5dwnM>$zx>n-?c}S@X#8!e&hHl4H zY~LYqXudtHlb+tmFy~!%`~Ch0IsAU9LQ@uN7Mregn;b}1!b}bXw%K6$B7x{<2htU> zlYa~GO-e9VVp VGiQz2mu1xbFPo@4$&l {Kh^IcPdMt53Z0!|;*9y`=nuSG7vY~FQ({Dx&~#ih0m zOzpU;6i`$9fwyE#$BFX5IQJGXG}!mdA!xqOK}67O=T!sH;C3~im5Oc3W?53-bAPe| zam`eHEO}k@s*$axp}I7$QT%Axa3Ff{`?6RSh#So<03I<;ZQ4+h(e!qlYMb3m|JHWZ z^d#_1hOIjIs}E{_&fgAdh%VpG?F8;VlVLj;{RG_li90cVh}~c5oG8kDpN`I-SzR_f zp$Dq*n~q) TxZ3Lv^i(d&tpysR}JDyc6;XA0sV@erleAc9P zAmJ0}MK0Sfb{8>Z7iwO&l^EPB0rm^-<^J@An}y_5Q9lCt5UxH6-hUIr=VyBmG=I){ z>+%f4kvC&Clx@Yo@BZTX(BJW4>>AT?LqM19kdC*q{^H*Jh=TQbSGFOIo_}zvcM~TZ zrKXiPtma6#Nt{_-KHK4OC*d7`&s~3dvBW<|-j&>=uD||P7|Wh*v?9Bvve)cQsOOz| z-jZ2=@@dJi_p7#(Q!?9Fed0#D$}7&gX+U2cbKkp555|L*cQ%`42AeHUpU@4rl~ce_ zv##+>gEgTOwzZnTgQ=;S0Drx1rzXHpjno8aw;5fCY}r1{Yy&Zk3tmG+z;N3%Ou$x6 zlB`JyPkHC5*hlR!a{k;Kg+-S2-CLgqSunw_+g`OaVehDv_Bxhxk2>J=6_0x0{FNh~ zbDj2>cm~zaTYp@-2m8;4+xDN&=C>Pfcx`gimh-T#pH ) zSrwVnL1>W#(P9BQUI~VL6Eg$vHc S+D2TZ{}`$v0DnCE;hRlxvgnAgYmQPnd4(fEYBUz z-T~muGd1>nAi=q>{(k_$IkgNyNbY5G9LRROy37iX$JyXm%`wKkJ;%jSKp=-kGXQCa z&*0BImr^yD-e5feQm{$F}7IB}?rPN%jg$f|!(P z9v|Ycv0*%>N`tuw!$;u^}+s zfLrC?$+s)-3Z0)>=lV^6S*O~Jr(KWAx}RlL7O4lUw=0A;u3Kr23%h-7o8BK_&&~Os zoue}B)s6z0uGSsuUSc`o_yMk#4Qw_`un^W!*7{?4df+#84&>1f0EV=+wal^32FI =6Xx*_=fmYZja&&R?;KbEoBZT=!lsBgoWry^t*x ze`>`M7njHMJ{8`1{0)peJ@1E3)b8DDIC!@WBoXNL@qf26@Jsrt+KCrw=zZb{uzZhh zb1V;1MWN-pcC5qUb-v#T-`)oZ_9Lsxf}%1<(B?jF2UVQOLX0 wsl0xnC!HcY{r(I+&&j)m+l>3HNn`>I^Wn2AY!=V$yP;E|+oUU`VclBds z_<}f&?SHx$bnbWxFr6QG{tLmb-ZN=B6Kta|Fu=TnQp2ofIg^hhv-`XO+wXWTIw_A9 z#kQIoj$n8YV}3xeJ2se)!;EM}8@8qEbavZ?bg^8yl`vLU+F5wFGFd#yNAaK2Up7+6 zDJu-(oK}EvN?m$8N0;4RftXY62nF}2{EJ!{`+wn)l@;5SRXMx>zQQNIbDIP|U$_-{ z%Y~o*V$ELs #xCc8@8kl7`mXF2_>i AY@=hNp1#{!{27gGD z>lqD@Om(_hMFs1J?vYg^+0D_xR6kY2pNDMslAQ@uT;=P ltprldbr4Dv5 z$f*c%X|w!rF+$f`2#db0y#~QRW* 4+?VFEi6R(`=AJgD0sv#S`w*aktSIPM zRYk_yu^~TXly|51X(Xdv8XAUX9e-F)#@ZO*g~#>NXgC)0)9w#Z6=*4BGLN1*W)Px` zXNH|SgvI%S-S6||s4wKwZYO{s 6V=hV6Y(f$=3|~XZ zRMXtZW_I_2-U>S9;8$*55pipYr#R%w;u|>n$4XtmZ}O8#Cq;38!3VNZ|AG(6-vxfr zc$th|LSDur7L+%tc~6w>&VRDdQ{8zgQJ&j?Qwi%$H>fh)n+{N=w>KR~`wGw#+a)Y^ zR=dPTOljZB{1@&h?}~t)zSb zap)w88`_|mugwNAOq=E4qs?Sw zTIO=A@MV~4XgOAB^nayp)fsc?>QGR^yxdY6zTUJf5tTTlLo?33=>g0V2HK3)??hVqJF!EWj1L zAMse8yLHhwFP1t-9)modE#d&=@g&C_eLSA6=MUtp%p&_7F{h!9<||h&K*5s@M-qf@ zraO`W2l#hgQ-8tpcSBpP%~h1$p~{~(Yc~wQMZVF_6+W%IHq$AmTu-1q^?d7*)MYmo z<289gS7eTakKQ4F0?*nt>)OSsezB&!Ubk1m#@TB};sx5aaVlo*$lxwTY_joE@E0li z-BW&e8KxKL_RRY{t3@XAbo7xlPXu3y+~mc+tk>=}2!ArZl=MPud>6=zvGsXby%ZaN z!}f*P_;!{h*+iN3&Mksq(99wVUce+w#6FD?-3fawYwG2(Z`s`Va%e|gA{GIE;+0_$ zOh;W17J+}%)mahvM_eTphc4brSROfIb|els>SCriX!<+mmaqtLxT>4fefzvpMhU-Y zC<1if?SED>_n2#UqT#z0kdL`lCmep2w&AEPf${L6y8w?s4%~+tj~sU*IUYa!u9kT0 z(Cv`%$e}wR19syA@Es z^>ozq!~gwno4dB$J@lKq-Ac)5CR!n789s$y++q7~hsCoDV6I~5&{nG$3%H9L%=UiE zT78jf6YiBM4;yOp;+SpzwAs=jQnw`XaJRSvD5NM23&V=iyddmYLF|^zTng~=Iah+; z?|)VUUeW5^YR=xR>h0ZX?%plx?;E*^>BJr!16s6q$suWPu Vsuf ;73 z`gQ1*Oy;E%xxxt@0QHkeM`Sou4j4UF&AkG^obM8S@}RLUVm+! z2ErytmN96YY&jVZSD_AV1LuoeZ(|#!J 5#}8h7Wj8_z4rdlWlBK`HD2N@4D^Zku#J>dm zwyFEPtcka%j)I<2st8_+pYDt_g?|pi44tAm65X{>e-f~3t@|Y4s-an2?15Syo*yjO zu!Ij-){NqLS2cHeb%Q%n*2p$S{8h4$nQ7tdWF}cSYne$_$!2CM>;*4L^AWdWu93ec z$g7kV+%N8{rcuaOMKd9BGvQXw(K=fc721c%_mVD(3EK`gxbJXL*gb6^`G0|_#V{Lr zm&0O^Y_r~pkOe%9U5;xI_I#vBdNPwLIl*^YI%Dub5A}NB&E`;UzgBAi5A{0Gcy?(W z=zd9e(7%eZXM+hxh7)3*+$O~?_r)9h^@`6x*eh}!IutYH3X7BQN4Km3kJV+!hWpc5 zWTm_cg=h2qN!Xz`5}Zu3UVk>ik+Y|hbR;ypMQMZ6!|NsTyS5n)OP62-U9$*tf_4|W z5Aj$EsDBqvUIx8-6~Sm$D!>eU?Gnsb)-DMjXwUzBeHi-X%7KJjrxc9v3un*~c*X2F zk}RG%N9gsk=E$*j#=OZN$$!8B%H=Yqgj^?Mj_?a-%n^9SjA t%nP zW3~LVYT0`8_(t~s7bsT(E_6yW9=ISdx6l#vhj&ZgG5E!>T@RgK({wl7-+NbskB5gs zyEr)BHN1}9WxZ~q;$-nkw*NMi%NyL$(!Z9$cn3^A^vz1n<`+|}WWBidqAr@Hv7y!_ z{lYaN1BF{VxBH?K_kXSUH=rF$v}{W{0pF9B)&id6{HIa)u6T+>m(A#+i911EF?FX* z%O>v>eU0>;a;%%c=ZCgz+Ol87ORx{qJ6{Y!-q~Uldh_^}1G=){i01(c?_-5S^0S}| zp|u1W-V*`$q#nG907BkGKp~h>dAy>(e&WY1Txl`FhT+8wC4b|wX_L)XA4NAWuri2d z3L3FSqeA~NsAC$996b<@W?0M9v4hj22-eAt#|=xvXx@=NXc{sOZTZqEkrym65_6?o zE%6u4(-L)^94+D3%yrm}_<10m=)j$x^)$%k^WOwMW) h84 znO^5uE$6d3eSd-c&Va(ZrQwj<3SK>tJ;7x_)ycA+eCt<$u4zNLFf?AizU?==hV}*n z_Ws9U1LlHo!m<23TOTkR6b`=cb_=3GLT&EwDIeH0*e+VM82TDc5cz8r@CNsicB^2s za~7rO<1K~SmNi`ZdpGRd&lAK$w?n;jX%mo}{(;n+Wq-?F*lbrM+%eN!u@uWS(i&{k z#8xbL-H46G-AeG}TiLIL-Q4}U3Uuf^Uo>vS1Ya=ro3>?Zptj4BqY>ZH@_a#Cl>Tbm z*u4Naj)E2|-3r=Dg T@* z@V#d-I5-`yD!U%X;>*CX!3+G{^kjb!_e7iyEYN-sGaaWvHZAcloKYeF!WjtBoO8ty zoz >f{18h@oQf1n$02Km31yo-Y$qw9{c>RB1^;G(~4nnTj8#p zHGhny&h_3(9u4~2K-%Yy^h@I|>sN^S<}TlUT^f_r#nO-wODJ)`b GR`bM&TAW eza? z2FNJo9U(I*xb5+lmdMX-E-rg?HTnv)9e?x9<0WC2HZ24d-h+q%-32rkk$7|%1aDa^ z4hwJVt_b~97T)Vp9L@A%W%lWT;ae?HSFu9N&tc_Uj`U#UKE?QdFmF1 zT|B9D*v*!BuZ0W7z7@6V0*QrKi>DPsg{0cboV6_O1IdekzFssg&05QXE?8?bz<;H4 zs*bv7g58%@70`zW!g^}ixtUY2b~%kxx%c%*gqWvGBE@d$|8C@^ZT3Q`;|2i+ziE9u z!x7I~A5TUz7;V3ZH}@Wi&92T1onbqMBy2+L7-U!&7S{ q&>{8n)yQaXPt1hJF$MHf;_2YY z`!3jPC>`uHCauK;K81QrAv=QQ-2c4sqEzSkU5959{Efq6ytFwLLYw<)=zku9v&V_V z_!c%DkaT@sdneo$W2OI*{>9kPq3qS~;>DxN$njQL_q*e(@QT>JEH_N> DF&Y&D^UN z2s7pC8P!O;T4rUPf}lmIV}BXwKoOrUq{Bwp-&uo5Y5QM*LT_)@Ami7Ct Ry)AuxSrs=B@Vp-Oo2slyx9OV=M6eF17>^->XWo&> ^b1^;-*cKa-lO=g(qWbZu#btLkkC4cwjx3!#c4jYi($}PAH zP~0Hyvi_c7F6))gG$U8f%he(pUg&o8Bapj?W~ho!i z8bQFe!4nByBrW{6h@6K1NTX2ryUQn&3~MknO-1q*>VGGOyK;FGB&!uRPVfS8ST7S@ zHkI#b-D6SLO $&Zw+|{I5%V`?=x-QeH)^pe`zYlLwKLO~v?tz;YesAjKD z1Ivz-|5 zYWa^NmoF1&R7Y^cO;n!DmKVj#5bXk|m!gQ+tbfm1siUE _e6nC4D>HX8$ z;D3${N_J?;VN*5D*WvJ@lrI>`ppnKhTqW%gws0n1JY2RaBX#5^U|sHXB1|mUquSBh zsNSu@_gU6?OII5V`Fu}`GGEd3^On^9TUJkEVClf>iM-E?a=UQ0F7CSgp3ow*4SAgG zIB-(00S-5wZnjN*Us0zFv;;P?l{=M&y?>tL>6tMhPp6Cv@#lE*?Y0?ezlkbzAm*me zcZ=fkXA;-IT-;WC0!qGev>5Dud^dM7%)m?<1KG*Dbr*(QJe^L*gVP|JmUPX~ZoPZA zbYV|Poe1+I1pf0+CXyKRb6J3C2ZGUfM*$~u(t-%rJdyTAS>a987bRqc?L{fuhJQBI zFG(nh>Pu1voYgy-q^I@3>*lFmgXcrD&8u}w_>|(siusKA<;wbu`b7%-jP->|{fzfT zivEoCh06cF*?ukH@aBiS57@YW0tesjwLJV#!=Bj=UPy@vZ*>!n|D(F6Zrq2sv2t zy={KHz50NUJ-5C(O2dx -+jdiv z?RxsWzrW|Nb6sa^-TPj6t+f|EJCj9H90L*_=*|203)Y3x%WjxT@1_-Hw*-J>1J|dW3 zT1yY~8We{&Rr&WG)*WrkK!F%uGqJ{kNf#@K$iZg?#*xau8D-l5Fns0+wAaj31e=wL&R z5Uc8?hG0x5h?gh?j{?uN7Tko)5G%12=SqL@1HV3e)Gqf}_sZx|UOabuPGoi%VQIBE z$4u*s9fi_{_klbB(b+}0{{6Q_$u-BJCX9*@p+mx9TkL8gqU_ooj;(V2p+t)hk@ZHa zsSUQE<|mERid} T IVJ8FEzghhE zSl3_QE(jc=YLqvyO5vi+W*PiRM~mSJorw#vq@NTB(t>? UNawJ<&4W?xc`peo<$;Q zyd};Ogm3)l3fm`4#dp!F6$~*LPdhD=Hqid0%VCdKG}5*D=+)B&O7}3bp+k&xD-I@m zd4PmDap_<`%F`=_UHv)Z$Xm|l>E3lM7`&Ygch%Yhz@3Z}`cIUgyR>cI&OY6GwjMRm z2ZpZSjzR}=;^fP3C#N?ebRk+9AT=blfi=3WE#01o|E~ASAI)o7E;d>I0XJ|M@>2m9 zViRVXlZSS1geUUBM-`jYSd0Vg;XS3b`|2!Vu?9rHzw5M4yU@YdiCiH6RDk#u8i&Kd zz|PI(yG^EQYKEs >9^&_uR zU(|9BxERG|OO?5-WhMr`jqKqg>`kgp!y?=pBPt(^9&9;^aJTT%{S{t@d #rX61eK>dnsXE_Ibi=JAx2OeX%#guEsY>fdEMzv(D zq|##~Tt>mI!RqP{4H!Jr7iu?-G3Uv ;nv4o=m)W_SKvLh>n!{z56*G}7R_fB}!2FhE0QHXR z7IN0IFMhK58405p1yfM_1BB NFFo9ri+n+QyObJkMQVM!Et(8_ z %z^`%J;!0ic^d^6aMGSR1>+&SREcVPc#%YqSB-pLaL0;Ek7{d1Mdq%msTs=v} z@%c-=f^BGX<~M}V^Y2Z$`r*xy-!MD3cS`6`JtIE>s44N92EUZX@RTY60?Uk=%**zQ zJ}b7YJ1dYct=?v|Dl6;+PsvPu_MM2pRQ$7 zBEK_`g_8}|=02zPFV%uq*uR=qn>yM*@NR$nO3yM=OC!uJWmu-rBb5|;gp%to#GES( z=r1`$xFZX&A7_-^J4T=ZG|*O!k`qM#fNpo?hAi!o>+BhgvCJvmp*F#jNz H0)JMOSJL_FLk8)`om!@5lc3;P`gQNJ!yBF zrrKKy?QNl`(Fp6ZT`Y4O21(7q(+_US0W1+tH=1a!TKH>et=51D@P%?pQN1A*u=xk^ zJ?j+-Vs~@GvUlc;>^C9FKOas}?r0h7YX)R_iNZdM4TO2UIUi3{Z3|AS&-;cnRoW*D z1$rT#yjPj|l_^c7cAt6>O>i_Ao-Url4QR0g{hdtT9u@F*p}-%j6-}{^_}$vc86GQt zH6T$#R}eT6nqZ{O0KsE8K#|=wNPVtk!#2cexGHN~kdeMv+UJTUc$JY8+uNU`V|6DW z0M#GQ6)MF$LbL5^8@xP>F4@llxu>QwV5HFq$<7Q$yr|S ZLbl zYd_0RNu>$q0g67*`r^s`U-yH(u%JkkAt?Yw@1PK=__7ZyKxM9K)GV{0{)+BD+Jnq| zws==qZ?W;b-+1HIBo{Rdl{>sRZv(EvpP*~E+0AcgnFW9Ur8+}Gu_dFi4SWcsZPcB& zprEhg2!P^)OVtQ$p=YQ3E)r@OlUKfj5JN}h6T6ZX1RlhaqT{@KdcMqZtjZfKo=(jW z&*OLdNJ6s80a#d2GxQf>5#_X3*C;*l=5zKyyok!KcA3O5U5F<4R g#R8AApS{Gsu;8xt*iuZ5slAS~ZR??mpkQi@t`Bbr4zYc 7)VzPp4Wb&G$!T3t8m+6<4i9PA7b= zBaqmT*0Sb@C`fO-wTr_@X}By>|HysRN{9#MEX6eSC2Q_K#aAxrXvnhb%DLGK*%+kH zr1+k^0xXez%A8uKN(tl#cvu4!4z-X}J{47k@SVQ<1#956KWg|3`zc&TY&q^Tzo=-x zXM2W6R%cFKC8h?((dM4sqI`pQiGklQn)6>R7o`?l5NF0HN%bHx4>EKo9~GI`^38@{ zGhmQNU%A&aR&_QlJLgdIbG1Md2~(J38M2^9!2FQ*fyWve4!1xBG4Wm}<9h5$VR;c) zG(c(SiG5VFRb_%BE>uKFbA++3;Pkn1a~>_Nrv!ZJo^EBqfoL*V8-&pS7J`Cf_k8Lg zr}+HAFzcC$Z9Hd$ejVl?+O;IClP(*q({q*s!U$UWz_T2BO2Np@+LTC>`Wu4>3lz@; zz*?1195;lf3rFysDcBw{k5(UgA)AjhPzk!WZlX^7RZjXo&M{+_)J7Z31UAB^P^)+I z{RE1T^0*Mi62u`VrjKz_`R)cWQqw#2JXa?9N7&+8j+41uB*E!}+m{GFJOOeg!<{kG zBp4c2&_PsFo5jZ5w2~5%!MGnH+@e4lfOPK(qW7-n5AJdDnXS<492k)A82<*AbMGJS zL8T`a583XPyzAy`0wG_;pLryvIbZKol7v1Xs`rDnuIf`hT?!7#PldF4FL$5_(cTBF zhKzrjYV(gXwcM9wRilq-hahIyH`m7lNQdGcL42tRUl_Hcoo8>}mxB@Tw4Cl&zyfYF zS_DzzZ5Fu*|Ii!Xk3v>V`91bDR>na4{P_*4GN$sad$Is%cF6C9PO3qZoQlKNV2R?q z?+ila<@aFSol?DJTC`B9XZJVt$KOKQ*KmpE&C&zI<}W1$?W=2VN||&_A8Hhjen5xy z!8E>vwB6V6=J3-l#|$tcm553>z+3|+3?)e#OHtF)gUQKSyaQeHJKY7Im83PHNWd!B zYyAjKp92oHf;DG<=yYMz>N4+y< Pz9~N_FeFy10x+p<%fjorqHbV%m xT%` gRzI5QR#EzcA%F> zuk9mg6^9+Kc`VGYgV3M8xKA=9q3>DMbiPm^IQ+VtuvPs$l-^SV818-*!`?U%WToHr z!pwDbmjqnT&!08J*%;&GR`&CC0ylo_nQk=$Y-=#sWx*43?ZC6b#&f?l@2`B>HSE1~ zC2nq8k`J{A4xfgVNXqxrG@SZW$}=TCs1oqJI$t{7a2z<~3`}~$+J;?rE>h9hO0FXI zKupce-OB<;GKc~|Da1wge#<~L%oo?Vh~_}H8g^ J)C?#Yavsy3d1*|KI7D&!rs7sPa{-S->{8d7}xbrwdEAIOYY?qGLi zZ(ZHo?oAGCn-X~0#?}L3lF<4b&ZonU(Aaq5PQcc{&KoRT(5av4tQhMvj$skKs@`nD z@{!h9$*?Sdb#id&O?>}(1nNE;t-)F6PD*M9RjMMk;wi#0#{!uC{U}`c+tjRa5^hp7 zGzR+OA(=a`TV+Rj(?3|j=pr{h5-*$08YX#YE>Q|eDk23W$>X!X&Ek<2wbhTbLd4<8 zQx&`ipasR2wf7{TqxNJZ8u32ZGU$$c$TS?^87KgNU}(Zq;}RxwZl1ghog9S0Suq`H z+@C0L29LDo7+HrN4_!etZ(#u5L4ya8d*b@fFUS2+ADYPB9rWh}+<)iT=Vb;Tw_l~a z7YX7>HSjobmDZN1NYR3vc)-Kvw)`lO1iy{rL?cvmFhH$D{MBbHwud6oc40Tg4C{ z+ZPaUooH16d-1jq@n_MmAc7U*)8o7gK;=~>@H?r|4x++hfQp>t3Jo_qt_a SY?;C=jk!4fgfmSUXzwv6#)t95~7Va}ZR67&;LUR1J&_QN2WTimD(d|_nh+EWE zBu1`ry>ufk OA;S>J*-PDV+OK;6QCXX-#UA`K~o0PgWo&@=t?$+W5IqAn7m zbA+hK41_UeFsjHaaN~Js_x%@*#p9FFp`ZS~yg2 H ^?S({0*O~`vt&W0Hy8X}1|3@DSk^1mFWStyPIt-;%n zYqJYcQo{?mdU)=v2}M@$xHH3pLW)%m*8ZB4-fYoMgw@+E$!A?XJ)sQDtfzJXDH@!r z5Eq*;Puvpw>_ECb!GT*8tLR1mB|eBMh_^8GcS%a59UqWIVI2Gs`vz9O_?#SxOQw(& zRYDGw5z|_Wi?88j)x>t9V&sW(M-Ds7QD0c&UU-UR#`_X`LZ}!KTT-6k)SBN%1HC2^ z`O{dmmFUN{HkgH??gGVDu>FLeF2*WaNy8d)J<^X(b9>d`aV;(%t6eg{CYT+AbB&l? z60{iq0GXevpU`uQt0Ub1mDC`xS?Vw5C<_0dhs&m_v@npA4Yo#xSP<;0ek$i-Zr+q8pn zf~Sa_qQe5YRNPD&CesptxuEB~r7l|9`yZq=9{7s4-DzU~($7>u!zQ0)?1o{`i-I-l z$C>DE8L{XY)VW YiS7|3pdnu6Wj9`M0FwnFmbj)|#K5r|^rgX)3lt&|@ zZOKhF{i#T{h^!uf%PS&-y7z(cfmjSEG?B8)&wl)Qo~Zkpj>X 8^U4nu3me)4!;h1JInH23<}6`8jFv~yf; z t#XA+OX<|1%9i#6b)ioYjUh1p1>jz_}W^YJgiSi|jF zN9&|2o#nZ`N#u@?xjX)t2DhIKBjMPQ-D`drg3#u`lT3o<^YRF?X4W+NkqxLupqfn@ zpeJpTm`77XtR=Ja7x1T~%w;#jV3;5&>YoAh)C^oRPHvT{C65n1NAxV(qzw8bb-DS^ z_fVQ73kV@yXe^lwl{Td<{T6Yx<4m#|{Cbby=jew (p@Q^jk01*Cx`Y2VlAN*Up6M-c%SjK8mPGa!!U;$|t QhDns;%28b=rTM z2<7RVd;F4Wmbf4KW!JBG3?~Hb*1+<}FxewgQH}LVNC%@B2WQvF)u2&Ud+bupL|~?L zocz`pT_=rL?)O{pW ET66LK5F1^;-2tnqDc(_MSMtchf%Q$1h<1B z)jD>}lvMI1L9hOW5h%h$JIpa-_C{m9!EXMR #PwLBac?|w7=>dN$o%&kXDOha$%yh$BPHinVV_is0|*tv<8FE(T=0kA zV aO(UA8R?+KeK_ z|2~A!*}H_(?ORR86&Z1aZq{aHnLi|AEs&r8S#ZqB^A76!OK-5b&uBms#?2lHm_u}X zn>5Z|vP%VM6QhTMIcnXt!<$bEg`m*eTOPUkiZrej$FuZjBn231;y &OhqFFyk94jX zkf_FC(qzPeDtyq D+q% z6>nUIvg0=AEaz{ig_z*nVe1O)g`88pxvOE;)e!5p*KKYZe-Su0aCgtaJKj2_JCto; z>m@-c!#O-s5tyc{8=*#xx_P638y|p+0aVBfSnOAgH=CPBp3*M_(~&w#_bcQ3*AgMd zJKtK{Y9Cut#14(47pwvyM)sl{ndANi=zy3{+8~i?u1=00#dVoCN#dH2G4SrzwD+P5 z|5zuZ9}twt8i7)}=cKpP2o1rsBdLn4ullJnzYmLhNjfes+P|QQ&VF25xL4)V3K+NA zQ+}`z?Q{^S#gSy3#)0(L&zeDM FtypvFByt3-)dzH>j&zeRP9`+KjI5?+9rZZ(Gow%B)w-`ay8W6`pq6}4 zK6-FO(HidRW~5|9%Ge_+o-_;H062AGYHGzN&3V2)hW>Nqvcln3{ui8;x^V#Y*K!6{ zKg}a=uS_O0cMX(mQPw3NS#k}!27U%(vs9HK?xP#`b#Ry1Ru>ce7wW!?riIHRe^Wd^ zRI9%^wLahY);Z`V&hJ@s6zobV5i6Be>GELH0B rMCA?p<|W2iK7|Ia>J z!oHCqy1bfy3lV_+e^TTCyXIbsruEn*z#gM3zz+A^&Zf4Cy@b+cMOCgXSTe-4zFzd} z>b9q@yQJ)UAF;ppk?-n?>-?qES*mEiBqOAV%Um&wIi~2cv=L~lz!u7#5smrcK!fa( zFPV-qQ*2y`C^VB0A?5AK!8zF!XP%{(V-f?1QC&FD4NCef6^dKOWxR+T0?`3|oqY zY0HdPLknmsYY8@Bc*MC_AeN3aU-Ex!nNNrqe|>Ik3$(%=J8c*j_+@R4F~E@MWV6=A z(_8`+pW!W>&Zb#a1(0F=2@G8M?ofhh;eWz3j-? ^M syR#`-4!Q*6DwGb-(Rb!(Vjh QiLq3Ic-(0B6l=5uvUfQcdJ-R`IYag+)P}0B}NHm3b&sL&CW7{JmDNQXvHqy)` zZt&{#lpCGR9!j=*Fz)ZkBgoM*bWDWFvAjyXd1Js&tPcE T<9`xBtIWygU5$tYyvr`%JIohIOjbzj3 4yc?JbmP$nT9 zlDP?g7KB?m1}4Jmb3;smlFLsX^NyRuq;DtB3FP^kIc+bNV1`V08lbb8;?e0cQZ(J+ z60%#RX$T@`FFpqH3wV4=OcKbc1@Oa8=yy-IcV-9CYNwe@w~AyoO86P#o{46Ck8vZk z@>^gDj;W`uw{IVhYO0YRX{Iu?sxb&%rqvEJ$*OX7#@lD<)3GC1FL&AnX 4HQ_6p!dD&PB`(=c8q#ZkuzEdaU}gbZ%JgSF*b5r?B$~OS_)8Fx2x`ocra%V;Ls6 zyuZ8ocP0wd$Mrqy TsjAg0^~R}qG<%Qia+bzxR=UW|>uU{1+RYE9!nG_^K+2T4iGfy^?Y ztV){W|E;;xR;`|9FxP<7U>xnjr%eWVoFMm-XQRs&y^<#9Un9UtcLq4e;NTWShc1#0 zxq9d_IZ4+Q%5g$&Z}kQBDu>S1C5L{)ZW-v8+mo$l?v{?^U$bTajOEL8 VY~&mRvjsk?b2ue>r#NGqa7JBBir#Za8|Rhy7*CVG`@6{*8@}+eR*m zvm`aCZTjXctpMc-u?rlLtd~Ubcki92X`OrST-a_;F&Mb$g;mVO5Z~<8q*rcl76~I> z{y|y*`!;B)mp=4ad?!CkAdP!&Id)8Hqz<0zvaA5Kh|!5Fw%_FPP;gFtIj(vabb?P5 zx4f0=oh%KhWdGTRy~LB*G E8mxbRtOjKW_NqW-eSpYi!0X=;EH`fW$n{@8}B698L+L&>Ynpr zuOj((N6r| O_uah>sR7k zuPp%J3 (_J5-ip+_K1XtW1Hh T z 6LFX0)zsl+!VZ?vi^`|oTn$L{CvgE1oF)VPP;_fFzjW@_49yQZRWr6 x%mVFJ_BweTJ=>F#`C|EI4=kx(_g3BZy@)?OGFiFY j^}s n>JvZQHxuU}y^+PkKW1|<54phrd^tks>r{mLLN9$yF>bwC ziY;@1*oUHig4j5SBLS>XDs4NRJ$Eh^Li{1`=3TeL5Wb}i^$t9 f z0w6iVn;^7s1outiGGy7kVxI|Gwg_dLVW<|w>NKN+kSl~4C0OCp?vrueuM+)GEDeEc z@b4t^w+&(<{I)^#CA^HbSpksbeV%m 9@2$6=U7iZOSlt5*dZMYSJh zwy6m@y6N9z6yaN!vKTb&9IDJqbvP{R0VD{>(e5MOx^$6U`qe{vIB76O_b`&wkwj%c zcid>~`@#HkWQ_%AYNX7kQt1EZ>fSYdySgp^b9G_3ogR<4ueJ?xvPbedo#O qsdrrn0etB}-7Tin;Tc@v1nYg0y4eQw|7O|&xSpYNgkG=rCyGgN|ST~m_ zCvll3keq?vID0*p92*mYryHAH$+LxfZn;VD93=3~th3SC>4DNeV$cs#dHrHdS|hay zmI@Ho0sE`&raQ$Z+lFZEWkbD*L)|_@R!By)urbV;9uhfn-luGJjDbd#%RB~T#s`c@ zZt)YeLf4c1r=FrBhm3%^$2E*rCfs_AQ=@P NhU9k%dNN3vdLN# z6QuuLa33;Y8!HqE*H#6v#$VC1L1#5fll%{|cbfiU)hlM~CqwX?{Mi^p-4+ln2!}^5 z{D1D&1SC2 iM&6VmndUN8hfW`#D7L>0vf>AH4I6vALfy@XIwdf#^3waM?*}5 zc_>6oHv(dqnZu{|Kc{pdh#9YgG6Cw<$DY~+mJRuMvrS{$<8iKltawBZw%(+3W`7#u z*K-7UL(}Z!l+%69+IQy|E!h0r#rXPPk@(t?LX-U^&4bvgR6!i@^gDr_MZ)f`?jC=h0Zw+~Qpb$;grSuE%g<)H^!Q9&-IL=7sCE=2-s7@v zJAv=no0%-8-nD)!zQ49Ah2sjV5PpDi92M3H)SyN*P5jGjBXkiw=5Gf#-JOAJXvJ@O z#&}*N7$gSyasBqPmo@SV f^VlFy#t |*kNg7kYxXbEC^Xw zw5R4Wlu^01xG%P`4Uzz?(pX~u-4s`0%rcf@077ryS6m^TRoeMc28frW(~*nXEM#Ba zKco{v$1i5b(k)8U;gl0FKS%_vnb$o1z!7S3uf?}t7L*CsopxXVnUt;IsJpL#PG=^I zj%OM^Ril3igy*u$29d9)3<%WnF^dvArZG(- s2L}(5UP<{ z#8kt$1z8~}O51a4y17%T*DF{w%pgPW+mM8%(GGmC;<8I(h~a{a-Eh|gYYfcZ)qBf2 zeeI3?1l`_CQ4lwL>oQyE9Eb8d>?PXMI3tl2oXEA&u{J_+=Dy(H6emk^w~n??{)R >T{sFQI$7p~2_dxzl)|S3=1WcAcLkWi$kNp?mRAw }}>ZQ?VH#3?QNeO3?)z2Jl#5%S2 z;d^+3;PjrUW$(4f|3I3@tEfe5he%L3K309Vh2CK!lgHi{JANX03OOK^Hw1xV5~kyY zrf{WXBD=Wy{}dJyGfoX_ml+tol?#{AuKTJv=Rm{di$qQ2l}*y6#j8oRpHTB-F71F7 z&GQmWI&MR}%kpf+T*kjZO|7*Qum~EUKJAKStC6e$L?4_id=J7CiUkq=Ia02kiF+9m zt^;)rdkt6px!4(ix7UaYj_XN&=-V*<9KxOwNnDVpS`XlU=xcCU%Y?k36*_u+QBSRz z0+fVhGTp83->eMbb^XLxC1>!Q_Ld*Acg&i>lOJHit{XvqjE?^wz|ZPXy~8=+ATR8> zGmI#No%(R-;TF-l )C3an2LlAgr$ n-RrWCvj+rtTeE!dbt%YSd-BE)H#m!tLXB7 zlmjddvLTNW+JP@@zn}nOLbvYf9HLr6tPilw- D9{sb zomQ&{2+lWVvIfSKxnDP*B#u2c1ELBcgWES8
hJW0qE|!fS>$yu8O& )v}AS*;r^}MSZ60l=t z&kYS%M%%cQ;vjj;7re;1oqX5~>Y*m1UF63r>2}S h3#31-C3hW2XDUs*5%c z%9&^MD+wM_AI^%MVp9R+ug }^a?Y=!*0*h0SO zLhn#f5{S8ECM<=%aYz?oXU|$@ui12XQe mf zqZva>s_?IZlO1FS btU(h$PK0%9{Ozk#fj!6Vhn5L| zqA;bJ;LR6q-SSFm8(QB|opk#gt^x-WZXB= -`_B3WD4R4x9XOt@y=Xz?E zsmM`BSdSL~4_O>ZRoQ`@@Kp&39gFeH4sn{`AY-=R8exHH4cWfU#qEiH?U86+h55+0 zYW9so% oithrNVIsh)l#N9rU+m??4 zz#X~ScLzyG%s%;&g 8BxZaI&at^vv|}t@@q67wno2Uf>r_CYInSJvQZc z0(ev_L;n;O -=4a5*Stz$XU=$6ROfi;#P#V9;l+wP2Utn2d6Ora{7f@@LT2Ly1dN^hV5 zf&ND((yJmS{~y26w@71g>x0z_48bGv!GE}aZj@!?Pi&wCTVg(>?pG8(jJ{p~-Igj@ zRVKAEkIE v^$b__oL{Gg1|NNm;dYPZo)JZwVg1tv_;~3}}89Py2f6e+)uArUY @)9^$)vKxnHu@$4~2d;CJ}9JmrRK>@L9Ln&QNdHd0xQ z-i`a)%4&~sW}_H-SCpz8t&9fPqvq?PrKH9~g_&C(HAWIN8Iak!t1h5%7HC_ ??jiTl-qO~?1pB;*k_LTmoET$|c-9j&tye~yI%B=CZiQqo@DG$B& zX3R9oBF}!5on$4%QiK0)YCg25ycXZ^X2(LA5C|AojNY?CqDud)cAlSiv9?uxs*&k$ ztwWP~{*j$PrrlW@HB~A{c#BOctl)&-k^;))VGE0i72FCmU_f)ER0|ybMBK-JC9*9% zcy7O?e{_P`;c|*4UjzQ5d>4+Ys