Readme file for Mush-Z

Note: To move through sections in this file, use your screen reader's heading navigation commands. In most cases, these are the 'h' key to go to the next heading, and 'shift+h' to go to the previous heading.

Table of Contents

  1. Document Revisions
  2. Introduction
  3. Getting started
  4. Connecting to the mud
  5. Coming back from other clients
  6. Hotkeys
  7. Mapping
  8. Stealth mode
  9. The volume control in Mush-Z
  10. The channel history plugin
  11. Output functions
  12. Screen reader substitutions
  13. The Winamp control plugin
  14. Aliases
  15. Configuring Mush-Z
  16. Fighting sounds
  17. About channel sounds
  18. The recall command (ctrl+u)
  19. The filter command
  20. Storage preview and storage capture
  21. Eqlist
  22. Acknowledgements
  23. Contact the developers
  24. Donations


Document Revisions

Revision Date Summary Author
1.0 May 2015 Document created Kurek
1.1 June 2019 Section about area tracking feature removed as it no longer exists Xera
<.P>

Note: This document maybe out of date, incomplete or inaccurate. For latest updates see changelog.txt

2. Introduction

Welcome to the custom MushClient edition for Alter Aeon, one of the finest muds online. If you've never heard of Alter Aeon, visit their site at www.alteraeon.com to learn about the game and the friendly people who play there.

This client has been especially designed with blind users in mind. You can use Mush-Z with Jaws for Windows, NVDA, Window Eyes and Hal. If you have a suggestion for another screen reader, let us know!

The most important features of this client are:

3. Getting started

Mush-Z is easy to use, but before using it, there are a couple of things you'll need to do to get the client working properly with your screenreader. After you've done those things, you'll be ready to connect to Alter Aeon.

Once you have installed Mush-Z on your computer, run Mush-Z. There should be an icon on your desktop. If there isn't, open your My Computer window and navigate to the directory where Mush-Z is installed. Look for the file called Muschclient.exe and press enter to run it.

Once you have Mush-Z running, you might need to help the client load the right plugin to start speech. Mush-Z automatically tries to detect which screen reader you are running, but if this doesn't work, you'll need to manually add MushReader.xml to your plugins. To do this, press the 'alt' key, then 'f' for the file menu, and arrow down to the global preferences menu item. Press enter to open the dialog box.

This dialog box has multiple tabs across the top, as do many Windows programs. You can use control+tab to get to the tab you want to modify. In this case, we're looking for the tab called "plugins." You can get there by pressing control+tab nine times or by using your screenreader's review cursor and left clicking on the plugins tab. Do whatever works best for you.

Once you've reached the plugins tab, use your tab key to get to the "add" button. Press enter on it and then press shift+tab to get to the list of plugins. Add MushReader.xml. Once you've added your plugin, tab over to the ok button and press enter. That is all you need to do to hear text from the mud.

3.1. Newbie tips

when you start mushZ for the first time, you will periodically get useful tidbits of information about common and less-common features of the client. Reading these tips is a good idea, but if you do not want to see them automatically, type config showtips to disable them. You can access the tips in your worlds folder, under ctips.txt.

4. Connecting to the mud

Connecting to the mud is easy. In most cases, starting MushClient will automatically connect you to the game. If it doesn't connect automatically, open MushClient, and press control+o. Open the Alter Aeon folder in your Mush-Z directory, then press enter on alter_aeon.mcl. If you want Alter Aeon to start automatically from now on, you can open up global preferences from the file menu, and under the worlds tab, choose the add current world button, then choose OK.

Once that is open, you should hear your screenreader say MushReader initialized". Then, press ctrl+k to connect to the mud, and type commands as you would in any other client. If you've never played on Alter Aeon, you'll be asked if you want to create a character. Press the letter "y" and press enter to start the character creation process. Follow the prompts to create your new character.

5. Coming back from other clients

If you're an old character, here are some tips:

6. Hotkeys

Mush-Z has many hotkeys that will help you during game play. The function keys in particular are mapped to many different features; the ones that don't control Mush-Z can be used with server-side aliases to let you easily program them. For a complete list of all hotkeys, you can use the 'hotkeys' command.

6.1. Information hotkeys

6.2. Sound and configuration hotkeys

6.3. Action hotkeys

6.4. The movement pad

The movement pad is not what you think. It's not the number pad. It's a revolutionary system for moving around the mud. Here are the keys for use with the movement pad: all the keys use the alt key modifier.

7. Mapping

Mapping uses Mush-Z's notepad feature. The notepad is a window external to the game that is used to put text on. Every time you move or follow someone in a group, the directions you take will be written down in a notepad separated by semicolons. You can copy these lists of directions out of the notepad and paste them into the game to speedwalk to locations, create speedwalk aliases, or just save them in a text file so you can remember how to get to different places.

The notepad also remembers when you cast refresh and 'climb direction', so that speedwalk aliases won't fail due to lack of movement.

To enable or disable this mapping feature, press alt+shift+m. If you want to see the current map that Mush-Z has collected, press ctrl+tab and look at the text. You can save (ctrl+s), copy to the clipboard (ctrl+c), or do whatever you want with that text.

8. Stealth mode

If you have the 'stealthy movement' skill, you can move while hidden by using the 'sneak' command. Stealth mode automatically sets up the movement pad so that it automatically uses the sneak commands, instead of regular movement commands.

To enable or disable stealth mode, press alt+shift+s.

9. The volume control in Mush-Z

The volume control in Mush-Z is very customizable. There are three kinds of sounds that Mush-Z plays: sound effects, area music (the music that is played for each area that you visit), and ambience (the noise for the terrain that you are currently in (ocean, river, forest, etc).

Mush-Z can play these three kinds of sounds at different volumes. To configure this, use the f10 hotkey to switch between sound effects, area music and ambience. Once you are in the option you wish to configure, use f11 to raise the volume and f12 to lower it. This is best shown with an example:

Imagine you are playing the game and the area music is too loud. Press f10 to get to the area music volume control, and press f12 to lower it. Then, you can press f10 until you return to the sound effects volume control.

It's possible to raise the volume of the area music and ambience so that it's louder than your sound effects. This isn't recommended, because the music can prevent you from hearing important warning sounds.

10. The channel history plugin

Channel history is a Mush-Z function that saves important events such as channel messages, spells falling, unique items found and more. These messages can be heard with your screen reader, copied to the clipboard or pasted in the command window for easier sending.

By default, the channel history starts listening to the 'all' category so you can read everything that happens. However, you can always switch to a different category. The most used categories are:

These categories can be moved about and deleted to match your needs. (You might want to have the 'tells' category close to 'all', and channels after that, for instance.)

The hotkeys to control channel history are:

11. Output functions

The output plugin allows you to do many things. If you press ctrl+alt+o, everything that's sent from the game will be put in a notepad window. Press ctrl+tab to get to it. You can review text, copy and paste. The problem with this is that when new text arrives, the cursor bounces down. To prevent this, Mush-Z uses a buffer to store new messages until you get out of the notepad. When you get out of the notepad either with ctrl+tab or alt+tab, new text is put at the end, and you are free to go back to it.

You can also review the output using a set of commands: ctrl+shift+y and n to go to top and bottom of the output, ctrl+shift+u to go to the previous line, i to read the current line, and o to go to next line.

11.1. Selecting text

The 'output functions' plugin lets you select text. By using the commands to review output, ctrl+shift+u, i and o, you can select many lines of text to be copied to the clipboard. Here's how it works:

Go to the first line you wish to select and press ctrl+shift+space. Your reader will say: selection start. Go to the line you want the selection to end on, and press ctrl+shift+space. If you just want to select the current line, press ctrl+shift+space twice. When you press ctrl+shift+space the second time, your reader will say: selection copied. This means that the line or lines are now copied to the clipboard and you can paste them anywhere.

11.2. Output functions plugin keys

12. Screen reader substitutions

MushReader's substitutions are a very nice way to prevent getting spammed with certain texts from the mud. They are processed directly by the screen reader and can ignore the text, or say something entirely different. Here's how it works.

The format to add a new substitution is:
subst add text==substitution
That is: 'subst add', the text you want to replace, then 2 equal signs and the substitution.

There is a special substitution, '!skip' (the word 'skip' preceded by an exclamation point), which will ignore the line and make your reader not say anything. Here is an example:

Say you are a necromancer, and you don't want your clay man to show up all the time when you type look. Find the line on the game with your clay man and copy it. For this, you can use the output functions plugin. Type look, press ctrl+shift+n to go to the bottom of the window, and find the line that says:
( 6)A crude clay man stands upright here.
Press ctrl+shift+space twice to copy that line. Twice because the first time would start the selection, and again to copy. Since you only selected one line, only this line will be copied. Then type the following command:
subst add ( 6)A crude clay man stands upright here.==!skip
You can type !skip (skip with an exclamation point before it) to make your reader ignore that line with the clay man. Alternatively, you could type something else such as clay, or clay man. That way, whenever the long line about the clay man is displayed, your reader will either ignore it, or say what you put.

The possible substitution commands are:

13. The Winamp control plugin

The WinampControl plugin lets you control Winamp from within Mush-Z and also broadcast the song you are currently playing to any channel. To install the plugin, go to your Mush-Z/worlds/plugins/WinampControl folder and run Install.exe to register its dll. To broadcast your currently playing song, use the 'wmb' alias with a channel name or anything you want, like this:

If you get an error about MushClient not communicating well with Winamp, try restarting Winamp and MushClient to fix it.

14. Aliases

There are a lot of defined aliases that might prove useful on your journeys. What's an alias? It's a keyword that represents a series of commands. It can be a shortcut for casting a spell with a really long name, or it can be a word that runs several commands. Aliases can save you a lot of time and can prevent typos during a critical fight. The following section explains some of Mush-Z's preconfigured aliases here. You can also set your own, either in Mush-Z or using the in-game 'alias' command.

14.1. Variable controlled aliases

Mush-Z works in conjunction with variables on Alter Aeon. Variables are like containers. They hold a piece of information, just like a bowl can contain soup, cereal, or ice cream. If you want to use a piece of information over and over again, put it into a variable. A variable can act as a sort of placeholder so you don't have to keep typing the information repeatedly.

Alter Aeon's built in variables are useful. By setting a variable, you don't need to create new rescue/heal aliases constantly when your group members change. Variables even work for casting offensive spells, stabbing a mob, or when fighting in the pk arena.

To use a variable alias in Mush-Z, you have to set up the variables first. Variables on Alter Aeon are remembered between logins, just like aliases.

The variables used by Mush-Z aliases are:

To create a variable, type "var v name" like this: "var v John". That variable sets a player named 'John' as the person you will heal or rescue in a fight. For example, the "rev" alias will rescue $v, which in this case is John, which is the variable you set. If John leaves the group, and Charles takes his place, you can just type "var v Charles" to start rescuing Charles instead when you type rev.

14.2. Variable aliases

14.3. Normal aliases (no variables)

These aliases can be used without setting a variable and sometimes require extra arguments. Note that '*' (an asterisk character) represents whatever you type after the alias, also referred to as any following arguments.

15. Configuring Mush-Z

Mush-Z provides an easy way to configure its features. By using the "config" command, you will access the configuration screen. This screen consists of a combo box with options in it which are mostly self explanatory. (Some of the less obvious ones will be explained later.)

When you want to exit the config screen, hit the escape key or cancel. All changes are saved once you make them, so canceling has no effect on the configuration. Your configuration is also saved between logins and restarts, unless the power goes out or Mush-Z is closed abnormally. You can save your configuration manually by doing ctrl+s.

15.1. Music and Sounds in Mush-Z

Mush-Z adds richness and depth to game play by providing high quality area music, combat, spellcasting, and ambience sounds for the various terrains found on Alter Aeon. There is also music for battles which changes as you or your enemy get hurt. You can configure these options in the config screen by using the following options:

The battle music mode controls whether you want the different music to play depending on your health or your enemy's health. If you are a new player, your health's music is recommended. However, once you are used to the heartbeat scheme, you may want to switch to mob health so that you can get a quick approximation on how hurt it is.

15.2. Condition alert sounds

In addition to the battle music, Mush-Z has some sounds to alert you of your own health. When you use the 'condition' command or the 'cn' alias, the mud sends a string of text related to your current health. This string will also be sent as you are hurt in a fight.

For instance, if you type 'cn' you should hear either a heartbeat sound or spoken feedback. Which one you hear will depend on your health condition scheme. Type 'config scheme' to change it.

The heartbeat scheme works like this: The slowest, normal heartbeat indicates you are in excellent condition. As you get hurt, the heartbeat begins to speed up. When you are at big nasty wounds, you will also hear beeping with the heartbeat when the string is displayed, and faster when you're pretty hurt. At awful condition you will hear a different alarm indicating danger, when you are mortally wounded you will hear an agonized voice, and if you die you'll hear an ending musical epitaph.

The default scheme is the spoken one, and you'll hear different voices saying your health condition instead of heartbeats and sounds.

The scheme you use can be configured on the config screen under the option 'health condition scheme'. You can choose between spoken and heartbeat modes.

15.3. The number truncator

The number truncator is enabled by default and it truncates some large numbers to make them shorter. For example, if you have 7838473 experience, instead of reading out all 7 digits, the truncator will report the number as '7.8mill'.

To turn this option on and off, use the config screen to change the 'number truncator' setting.

15.4. Death quote voiceovers

With this option, you'll hear a random voiceover when you kill a monster. Some of these voiceovers can have offensive language. They're off by default, so you'll need to turn on the 'play death quote voiceovers' config option.

15.5. Pick up random/unique items automatically

When you kill something, Mush-Z automatically tries to see if the corpse contains unique items. If a unique item is found, it's picked up automatically and stored in the container configured in the option called 'container used for item keeping'.

To disable this feature, use the 'pick up random unique items automatically' config option.

15.6. The audio prompt

The audio prompt tries to replace the text prompt that would normally be read with sound cues instead. Because the sound cues are much shorter, you can much more easily keep track of your resources when in combat. The sounds used are:

By default, the sounds raise and lower in pitch depending on their status. For your enemy's health, movement and mana, the higher the pitch, the better. For your own sounds, when it goes lower in pitch, it indicates that it is worse. For example, if you are walking around the mud you will hear the movement's clonk sound going down. Eventually you'll be too exhausted and you will have to rest or refresh yourself. On the other hand, the higher pitch the experience chime is, the closer you are to leveling.

If you don't like the sounds to change their pitch to show their level, you can set them to use stereo panning instead. In this mode, if the sounds are to the right, the value is higher than if they are to the left. For experience, the more to the right it is, the better.

The last option is text: If you want to know the exact values and you don't want to hear prompt sounds, you can choose the text option. You will see things like 58% mana, 87% move, xp 35%, etc. While this does give more information, it can take quite a bit longer to read out the information.

15.7. The recast configuration

Note: Alter Aeon now includes a built-in recast option. It holds several advantages over the one Mush-Z offers:


However, Mush-Z's recast feature is still available if you wish to use it.

The recast feature allows you to define different sets of spells that Mush-Z will always try to keep active on your character. You can define an unlimited number of these sets, and you can switch between them easily with the "zrecast switch" command. If you have not used recast before and you type 'zrecast', a new set will be created for you. This set has all spells enabled for recasting except bone armor and bone shield.

Don't worry about not knowing a spell listed for recast, as Mush-Z knows which spells you know and which you don't, and will not try to cast a spell you don't know.

To configure which spells you want to recast, use the zrecast command by itself. It will bring up a window with a combo box full of spells which you can enable or disable by hitting enter on them, just like in the configuration screen. Once you are playing, and if a spell listed for recast falls off your character, the spell will be recast until it's back on.

You can create a recast set using the "zrecast create <name>" command. When you create a set, you can use the zrecast command to configure which spells you want to recast in this set. If you want to create a set that already has the configurations of another set, use the from keyword, for example: "zrecast create fire from elemental". To switch between sets, use the "zrecast switch <name>" command. You can remove a set by using the "zrecast remove <name>" command. Possible zrecast commands are:

The zrecast command typed by itself shows a list of spells in the current active set that you can enable or disable by clicking ok on a spell. when you hit cancel, your changes are saved.

15.8. Short ID

Showing stats of equipment you have is traditionally hard to do, as you cannot copy and paste each line of text without a lot of editing. Short ID combats the problem by condensing all the item requirements and effects into a single line. In the config screen, you can choose to have short ID appear in your history buffer under the short ID category, or for it to also appear instead of the normal identify display. The default option is output, as some players are more familiar with the server-side display, but still want to be able to quickly distribute equipment information.

The short ID all setting configures whether short ID displays to the all history buffer as well as to output.

ShortIDComma separates various item effects with commas, allowing the screen reader to pause between the item's effects so that they are easier to understand.

16. Fighting sounds

You will hear sounds as you fight on Alter Aeon. There are sounds for most skills, including failed disarm/trip attempts, kick, leap, bash, parry, dodge, miss, etc. There are sounds for casting offensive spells as well.

There are a lot of sounds, and it may take you a while to recognize which sounds are which. If you'd like to browse through the soundpack to hunt down a specific sound, you can go to the /worlds/alter_aeon/sounds/ directory in the MushClient install and play them out to see which ones are used for what action.

17. About channel sounds

Channels can be public or private on Alter Aeon. A channel lets people with a shared interest talk on the game without disturbing the entire community of players. Channel sounds are a very good way to know when someone has just said something in a channel that you are connected to. Mush-Z has sounds for most channels, including say, group tell/gt, clan tell, tells and replies, my zt channel, xp, gossip, newbie, arena events and auction.

For channels without a special sound, a default will be played instead.

18. The recall command (ctrl+u)

The recall command is a Mush-Z keystroke that is very useful. If you press ctrl+u and type some text, Mush-Z will display a notepad containing all lines with this word or phrase. It is useful in certain situations, such as when someone gets something from a corpse, when you have died and want to know which skill you lost, etc.

19. The filter command

To reduce the amount of text you get from the game, Mush-Z has a number of filters you can enable or disable. There are filters for spells, skills, combat, minions, and a handful of other things. Most of these are turned off by default so you can read along as you hear the sounds, but as you get familiar with the game and sounds, you might want to turn some of these filters on so your reader says less things.

You can use the 'filter' command to display and change the filter settings.

20. Storage preview and storage capture

Storage capture is a nice way to get certain items out of your storage locker. For example, you can tell the storage capture alias to get every wearable aging item in your locker and put it in your container. Here's how it works:

Go to your recall. You'll need to be at a recall site to access your storage locker.

Do a test preview to see if the capture is suitable. For example:
storage preview -wearable +mana 20
The preview will display with something like:
Testing capture of -wearable +mana 20
Preview found 26 items, with a weight of 142 pounds.
That sounds reasonable, at only 26 items and 142 pounds. Now you could type:
storage capture -wearable +mana 20
That'd grab every single one of these items and put it in the container configured in the config screen, container used for item keeping. Here are a few more useful examples:
storage capture -spellcomp +level 25 -level 30
This will capture any spell components between level 25 and 30 and put them in your container.
storage preview -wearable +size 2
This might help you find equipment to increase the size of your character.
storage capture +manaregen 4
Will capture any pieces with 4 mana regen or more (this is actually 2.0 mana regen or more.).

21. Eqlist Feature Readme

By Athlon

The eqlist feature is a Mush-Z based alternative to Alter Aeon's eqsets. Eqlist has no limitations, is about as fast as eq-wearing aliases, and does not require you to create the alias yourself. It's already in mushZ; you might as well use it.

21.1. Important concepts

21.1.1. Why do players make sets of equipment?

Alter Aeon has tens of thousands of different objects, each of which is different from almost any other object in at least a couple of ways. The effects on a piece of equipment may make it more suited to one set than another. For instance, a piece of equipment with damroll by 4 would work well in a hit set because damroll helps you hit harder. It would not work well in a mana regen set because mana regen is not affected at all by damroll.

Players quickly realize that wearing a set of eq focused on one particular task, i.e. mana regeneration, causes them to be more efficient and effective in the game. However, once a player begins to accumulate many pieces, it can be hard to sort through tons of equipment to wear a set. This is why a computer database of equipment sets is useful, hence the eqlist function.

21.1.2. How does eqlist work?

Eqlist works by memorizing what equipment you are wearing at the moment and linking it to a name that you specify. Names can be as long as you want, but cannot contain spaces. For example, if you were creating a set for hitting you might call it hit because the shorter the word, the faster you can switch and the less chance you will have of making a typo.

21.1.3. What are eqlist modes?

Eqlist modes control how thorough the eqlist function is when switching sets.

21.2. Eqlist commands and Functions

Type eqlist without any arguments to get an overview of what you can do. Each command will be listed here as well with a more detailed explanation. Note that you can use eql instead of eqlist to make your life a bit easier.

21.2.1. Eqlist help

Eqlist help is exactly the same as typing eqlist by itself. It's provided because Alter Aeon's eqset command also allows you to type eqset help to get information on commands.

21.2.2. Eqlist create

Syntax:
eqlist create <name_of_set> <name_of_container> <mode>

This command creates a set with specified name, container name, and optional mode. The container name and set name must be included though. It takes all the equipment you are wearing to make the set. You can type meticulous, fast or lightning as the mode. This is also the command you use if one of your existing sets has changed. You can simply wear the equipment with the appropriate changes and recreate the set to update it.

21.2.3. Eqlist delete

Syntax:
eqlist delete <name_of_set>

This command will delete a set of equipment from the eqlist table. You will not lose your eq if you use this command, but you can no longer wear that combination of eq automatically unless you create it again.

21.2.4. Eqlist wear

Syntax:
eqlist wear <name_of_set>
eqw name of set

This command wears a new set of equipment, governed by the eqlist mode. After the set is done being switched to, you will get a timestamp of how long it took to switch. Use this to benchmark which mode is the fastest for each set for you. Note that you can't do anything while Mush-Z is switching out your eq for you.

21.2.5. Eqlist list

This lists all your sets, in case you have so many that you have forgotten which ones you have.

21.2.6. Eqlist show

Syntax:
eqlist show <name_of_set>

This command shows the names of equipment in the specified set. Make sure you specify an argument. If you don't, Mush-Z will show everything in every set, which, if you are like me and have over 20 sets defined, can cause over 5 seconds of lag.

21.2.7. Eqlist move

Syntax:
eqlist move <name_of_set> <new_container>

If you have multiple containers and want to move your equipment from one container to another - for example, if you have just bought a shiny new weightless and you want to get your heavy tanking pieces out of a tensor - you can use this command to move everything. You won't hear anything, but you will have a couple seconds of lag as Mush-Z moves all the items.

21.2.8. Eqlist change

Syntax:
eqlist change <name_of_set> <name_of_container>

This changes the name of the container that the specified set is stored in, without moving anything. This is most often used if you have a problem switching to a set and the game spams you with messages about how you can't seem to find a piece to wear. This command is not used often.

21.2.9. Eqlist mode

Syntax:
eqlist mode fast/lightning/meticulous
eqlist mode <name_of_set> fast/lightning/meticulous
eqlist mode all fast/lightning/meticulous

The first line allows you to set the default mode used for wearing eq. Default mode is used if the equipment set you want to wear doesn't already have a mode specified. The second line lets you set the mode for a particular set of equipment, and the third line lets you set the mode for all sets.

21.2.10. Eqlist clear

Syntax:
eqlist clear

This command gets rid of everything. Be careful about your finger placement; there is no confirmation about whether you really want to get rid of everything. It will be gone immediately. That's why it's good to export your equipment sets to a backup file, which is the final command we'll cover.

21.2.11. Eqlist export/eqlist import

Syntax:
eqlist export
eqlist import

These commands export your current equipment to a backup file, or import it back in. This is good if your working equipment database gets corrupted. It's also good to store before you move to a new computer, so you don't lose your equipment sets that you have labored hours and hours over.

And that's it for eqlists. Enjoy easy and efficient eq switching!

23. Acknowledgements

Mush-Z would never be what it is today without the help of Tyler S. Tyler initiated me into lua scripting and coded some of the plugins that this game uses, such as channel history.

Thanks to Jaide on Alter Aeon for rewriting most of this readme file and urging me to write about the newest features. It's a great contribution.

Thanks to everyone on the zt channel for the compliments, suggestions, bug reports, help with strings, and more. Victorious, Fighter, Goroth, and others - you know who you are.

Special thanks to Weyoun, Athlon, Slej, and Xvordan for contributing features and bug fixes.

Thanks to Athlon for writing the eqlist part of this readme.

And finally, thanks to Dentin for having such a great mud! Mush-Z would of course not exist without Alter Aeon.

24. contact the developers

Mush-z is jointly developed by a number of people. You can send any of them a mudmail with comments, suggestions or questions, and they will do their best to reply. However, they are often quite busy, so patience is advised. If you see any of them listening to the ZT channel, you could also try talking to them on there, and you might get faster service that way.

list of characters who work on Mush-Z

25. Donations

Mush-Z is, and always will remain free. However, donations are highly appreciated. You can donate via PayPal at <ogomez s92 (at) gmail com> or by clicking the button below: