c      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk l!m!n!o!p"q#r#s#t#u#v#w#x#y#z#{$|$}$~$$$%&'''''''''*(Strict unit type(c) Eric Mertens, 2016ISCemertens@gmail.comSafeUnit data type with a strict  and  instances. is strict is strict,  is O(1)$Multiline text container with cursor(c) Eric Mertens, 2016ISCemertens@gmail.comNone0Zipper-ish view of the multi-line content of an EditBox . Lines  the  are stored in reverse order.Default  value Single line .!Shifts the first line off of the =, yielding the text of the line and the rest of the content.lWhen at beginning of line, jump to beginning of previous line. Otherwise jump to beginning of current line.VWhen at end of line, jump to end of next line. Otherwise jump to end of current line.0Move the cursor left, across lines if necessary.1Move the cursor right, across lines if necessary.3Move the cursor left to the previous word boundary.0Move the cursor right to the next word boundary.'Delete the character before the cursor.,Delete the character after/under the cursor./Insert character at cursor, cursor is advanced.Smarter version of  that removes spurious newlines.OInsert string at cursor, cursor is advanced to the end of the inserted string.)Advance to the beginning of the next line'Retreat to the end of the previous line%       *Parser for mIRC's text formatting encoding(c) Eric Mertens, 2016ISCemertens@gmail.comNone EParse mIRC encoded format characters and hide the control characters.!Parse mIRC encoded format characters and render the control characters explicitly. This view is useful when inputting control characters to make it clear where they are in the text.""Safely render a control character. !" !" !" !"'Hooks into the operation of the client.(c) Dan Doel, 2016ISCdan.doel@gmail.comNone%Identifying name for the hook&0Whether the remapping should affect client state'"(Partial) message remapping action(The possible results of a #2 action. A hook can decline to handle a message ()), filter out a message (*9), or change a message into an arbitrary other message (+).1$Apply the given message hooks to an A. The hooks are tried in order until one handles the message. A 9 result means the message was filtered out by a hook. A  result contains the actual  to be processed.#$%&'()*+,-./01 #$%&'()*+./01 ()*+#$%&'/0.1 #$%&'()*+,-./01%Hook to remap znc buffextras messages(c) Dan Doel, 2016ISCdan.doel@gmail.comNone2Map ZNC's buffextras messages to native client messages. Set debugging to pass through buffextras messages that the hook doesn't understand.2enable debugging enable debugging 222Available hooks(c) Dan Doel, 2016ISCdan.doel@gmail.comNone3 All the available message hooks.3333-Human-readable versions of connection failure(c) Eric Mertens, 2016ISCemertens@gmail.comNone4BCompute the message message text to be used for a connection error4network error client lines network error client lines 4440Parser for unstructure configuration file format(c) Eric Mertens, 2016ISCemertens@gmail.comNoneI51Parser for consuming key-value pairs of sections.69Class for types that have a well-known way to parse them.7 Parse a value8VConfiguration parser tracking current location and for propagating error information.9JRun a top-level parser to either get the parsed value or an error message.:8A parser that always fails with the given error message.;VEmbed a parser into an extended location. This is used when parsing inside a section.<Parse a  according to the method in the 6=Lift a 8 into a 55 leaving the current section information unmodified.>Run a 5 given particular .. This will only succeed when the value is a F and the section parser consumes all of the sections from that value.? (sectionOpt = sectionOptWith parseConfig @Parses the value stored at the given section with the given parser. Nothing is returned if the section is missing. Just is returned if the parse succeeds Error is raised if the section is present but the parse failsA-Parse the value at the given section or fail.B-Parse the value at the given section or fail.EMatches < values, extends the error location with a zero-based indexFMatches  valuesGMatches  values ignoring the baseHMatches  values ignoring the baseIMatches  values.56789:error message ;<=>?@ABCDEFGHI56789:;<=>?@ABCD8<9:;67D5>AB?@=C56789:;<=>?@ABCDEFGHI*Client configuration format and operations(c) Eric Mertens, 2016ISCemertens@gmail.comNonePAParse a text attribute. This value should be a sections with the fg and/or bg attributes. Otherwise it should be a color entry that will be used for the foreground color. An empty sections value will result in Q#Parse a color. Support formats are:Number between 0-255 Name of colorRGB values of color as a list PQPQQP PQ 'Palette of colors used to render the UI(c) Eric Mertens, 2016ISCemertens@gmail.comNoneR.Color palette used for rendering the client UIThighlighting nicknamesUown nickname(s)Vown nickname(s) in mentionsWmessage timestampsXcoalesced metadataYsigils (e.g. @+)Zinformation labels[ ping latency\ window name]error messages^textbox markers_window name with activity`window name with mentiona known commandb%known command with complete argumentscrequired argument placeholderdoptional argument placeholdere"remaining command text placeholderyBDefault UI colors that look nice in my dark solarized color schemeSDefault nick highlighting colors that look nice in my dark solarized color scheme.(RSTUVWXYZ[\]^_`abcdeghijklmnopqrstuvwxy'RSTUVWXYZ[\]^_`abcdeghijklmnopqrstuvwxy'RSTUVWXYZ[\]^_`abcderstwqunoxmvgphjlikyRSTUVWXYZ[\]^_`abcdeghijklmnopqrstuvwxy Console-mode text box(c) Eric Mertens, 2016ISCemertens@gmail.comNone Default ~ valueDSets the given string to the yank buffer unless the string is empty.Indicate that the contents of the text box were successfully used by the program. This clears the first line of the contents and updates the history.AUpdate the editbox to reflect the earlier element in the history.?Update the editbox to reflect the later element in the history..Jump the cursor to the beginning of the input.(Jump the cursor to the end of the input.LDelete all text from the cursor to the end and store it in the yank buffer.RDelete all text from the cursor to the beginning and store it in the yank buffer.%Insert the yank buffer at the cursor.KKill the content from the cursor back to the previous word boundary. When yank( is set the yank buffer will be updated.JKill the content from the curser forward to the next word boundary. When yank' is set the yank buffer will be updated8Insert a character at the cursor and advance the cursor."z{|}~yank yank '  z{|}~'~  z{|}z{|}~ )Settings for an individual IRC connection(c) Eric Mertens, 2016ISCemertens@gmail.comNoneTLS connection+TLS connection without certificate checkingPlain connectionStatic server-level settingsconnection nicknameconnection usernameconnection realname / GECOS CTCP userinfoserver password SASL username SASL passwordserver hostname server portuse TLS to connectpath to client TLS certificatepath to client TLS key7raw IRC messages to transmit upon successful connectionhostname of SOCKS proxyport of SOCKS proxy0additional CA certificates for validating server"Channels with chanserv permissionsFlood limiter penalty (seconds)!Flood limited threshold (seconds)Initial message hooks+The name referencing the server in commandsJLoad the defaults for server settings based on the environment variables.USER,  IRCPASSSWORD, and  SASLPASSWORD are used.111 Tab-completion logic(c) Eric Mertens, 2016ISCemertens@gmail.comNone&Perform word completion on a text box.The leading update operation is applied to the result of tab-completion when tab completing from the beginning of the text box. This is useful when auto-completing a nick and including a trailing colon.The reversed parameter indicates that tab-completion should return the previous entry. When starting a fresh tab completion the priority completions will be considered in order before resorting to the set of possible completions. leading update operation  reversed priority completions possible completions  9Parser and evaluator for string interpolation in commands(c) Eric Mertens, 2016ISCemertens@gmail.comSafe%Parsed chunk of an expandable command regular textinline variable $x or ${x y}inline variable $1 or ${1}variable resolution argument index resolution *Client configuration format and operations(c) Eric Mertens, 2016ISCemertens@gmail.comNone!"\Top-level client configuration information. When connecting to a server configuration from $ is used where possible, otherwise  is used.Default connection settingsHost-specific settings(Names of windows, used when alt-jumping)Extra highlight nicks/termsPadding of nicks9manually specified configuration path, used for reloadingcommand macrospaths to shared libraryUses  to find  .glirc/configUses   to find .configglircconfig_Empty configuration file used when no path is specified and the configuration file is missing.YAttempt to read a file using the given handler when a file does not exist. On failure a  exception is throw.Either read a configuration file from one of the default locations, in which case no configuration found is equivalent to an empty configuration, or from the specified file where no configuration found is an error.*Load the configuration file defaulting to ~.glircconfig.gResolve relative paths starting at the home directory rather than the current directory of the client.. file to read !error handler for not found case &just file or use default search paths path to configuration file $optionally specified path to config %prepopulated default server settings ! #Interface to the connection package(c) Eric Mertens, 2016ISCemertens@gmail.comNone Create a new 5 which will be closed when the continuation finishes.          Event-based network IO(c) Eric Mertens, 2016ISCemertens@gmail.comNone -Exceptions used to kill connections manually.sent when ping timer expires*sent when client commands force disconnectThe sum of incoming events from a network connection. All events are annotated with a network ID matching that given when the connection was created as well as the time at which the message was recieved./Event for a new recieved line (newline removed)6Final message indicating the network connection failed8Final message indicating the network connection finishedHandle for a network connection:Identifier used to match connection events to connections.Schedule a message to be transmitted on the network connection. These messages are sent unmodified. The message should contain a newline terminator.(Force the given connection to terminate.9Initiate a new network connection according to the given R. All events on this connection will be added to the given queue. The resulting ^ value can be used for sending outgoing messages and for early termination of the connection.delay in seconds )Identifier to be used on incoming events   Implementation of slash commands(c) Eric Mertens, 2016ISCemertens@gmail.comNone                     (Command argument description and parsing(c) Eric Mertens, 2016ISCemertens@gmail.comSafe%&DwDescription of a command's arguments indexed by the result of parsing those arguments. Arguments are annotated with a  describing the argument. A required space-delimited token!An optional space-delimited token(Take all the remaining text in free-form No arguments{Parse the given input string using an argument specification. The arguments should start with a space but might have more.@Return the next space delimited token. Leading space is dropped.specification input string parse results &Rendering logic for commanad arguments(c) Eric Mertens, 2016ISCemertens@gmail.comNone%& Construct an > containing placeholders for each of the remaining arguments.)Lens utility functions(c) Eric Mertens, 2016ISCemertens@gmail.comNoneModify the target of a d with a function. The result is strict in the results of applying the function. Strict version of 9Set a value strictly in the set value. Strict version of . to the   component of a !"" to the 'TimeOfDay component of a  ."""9Types for representing the current window being displayed(c) Eric Mertens, 2016ISCemertens@gmail.comNone Currently focused window No networkNetworkNetwork Channel/Nick Subfocus view Show messages Show channel metadata!Show channel user list"%Show channel mask list for given mode#Show client windows.4Return the network associated with the current focus/Unfocused first, followed by focuses sorted by network. Within the same network the network focus comes first and then the channels are ordered by channel identifier !"#$%&)*+,-.network / !"#$%&)*+,-. !"#.&%$)*+,-  !"#$%&)*+,-./IRC channel session state(c) Eric Mertens, 2016ISCemertens@gmail.comNone85Dynamic information about the state of an IRC channel: topic text;author and timestamp for topic< channel URL=user list and sigils>channel settings and parameters?mode, mask, setter, set time@creation time of channelAdelayed op messagesQConstruct an empty 8RAdd a user to the user listS Remove a user from the user listTRename a user in the user listUSet the channel topic#0123456789:;<=>?@AEFGHIJKLMNOPQRSTU#0123456789:;<=>?@AEFGHIJKLMNOPQRSTU#89:;<=>?@AIJKLGFEH0123OP4567MNQURST012345678 9:;<=>?@AEFGHIJKLMNOPQRSTUIRC network session state(c) Eric Mertens, 2016ISCemertens@gmail.comNone$[Status of the ping timer\ping sent waiting for pong] latency in seconds for last ping^ no ping sent_.number of attempts, last known connection time`KPair of username and hostname. Empty strings represent missing information.ausername hostnameb%State tracked for each IRC connectiondnetwork connection identifierejoined channelsfnetwork socketgchannel mode meaningshchannel identifier prefixesi!state for multi-message sequencesjmodes for the connected userk)modes that prefix statusmsg channel namesl!settings used for this connectionm/usermask used by the server for this connectionn!user and hostname for other nickso%maximum mode changes per MODE commandpname of network connectionqtime for next ping eventrstate of ping timers2names of message hooks to apply to this connectionTimer-based events'terminate the connection due to timeouttransmit a ping to the server#001 $ is the first message received when transitioning from the initial handshake to a connected state. At this point we know what nickname the server is using for our connection, and we can start scheduling PINGs.%'Add an entry to a mode list transaction&KSave a completed ban, quiet, invex, or exempt list into the channel state.'[These replies are interpreted by the client and should only be shown in the detailed view.Return ( for messages that should be hidden outside of full detail view. These messages are interpreted by the client so the user shouldn't need to see them directly to get the relevant information.>Predicate to test if the connection has op in a given channel.)Process a list of WHO replies:Compute the earliest timed action for a connection, if anyApply the given  to a connection state._VWXYZ[\]^_`abcdefghijklmnopqrsxyz{|}~*+,-./01#message received my nickname 234%mask set by  set time &mode channel '5time of message sender channel mode flags mode parameters 6789:;<=>  "key=value"?@ABCDEF)G<VWXYZ[\]^_`abcdefghijklmnopqrsxyz{|}~<bcdefghijklmnopqrsy|x}{~z`aVWXYZ[\]^_CVWXYZ[\]^_`abcdefghijklmnopqrsxyz{|}~*+,-./01#234%&'56789:;<=>?@ABCDEF)GMessages to be added to buffers(c) Eric Mertens, 2016ISCemertens@gmail.comNone7Compute a searchable text representation of the message 2Types and operations for managing message buffers.(c) Eric Mertens, 2016ISCemertens@gmail.comNone;Flag for the important of a message being added to a windowDon't update unread countIncrement unread count-Increment unread count and set important flagA J tracks all of the messages and metadata for a particular message buffer.!Messages to display, newest first'Messages added since buffer was visibleMessages in buffer&Indicates an important event is unread,A single message to be displayed in a windowOriginal Haskell valueSearchable text formNormal rendered imageDetailed rendered imageA window with no messages~Adds a given line to a window as the newest message. Window's unread count will be updated according to the given importance.?Update the window clearing the unread count and important flag.Renderer for message lines(c) Eric Mertens, 2016ISCemertens@gmail.comNoneAn identifier in a PRIVMSGAn identifier somewhere else%Level of detail to use when renderingonly render nicknamesrender full user info'Parameters used when rendering messagesrestricted message sigils sender sigilsnicknames to highlightnicknames to highlight in rednick color palette nick paddingDefault MessageRenderParams& with no sigils or nicknames specifiedWConstruct a message given the time the message was received and its render parameters.H@Render the given time according to the current mode and palette.I+Render the sigils for a restricted message.J Render a ; given the sender's sigils and the nicknames to highlight.K Render a ! as time using quiet attributes 23:15 L Render a !, as full date and time user quiet attributes 2016-07-24 23:15:10 M-Optionally insert padding on the right of an ! until it has the minimum width.NRender a chat message given a rendering mode, the sigils of the user who sent the message, and a list of nicknames to highlight.*Render a nickname in its hash-based color.Render an a full user. In normal mode only the nickname will be rendered. If detailed mode the full user info including the username and hostname parts will be rendered. The nickname will be colored.GRender an identifier without using colors. This is useful for metadata.OParse message text to construct an image. If the text has formatting control characters in it then the text will be rendered according to the formatting codes. Otherwise the nicknames in the message are highlighted.PGiven a list of nicknames and a chat message, this will generate an image where all of the occurrences of those nicknames are colored.KReturns image and identifier to be used when collapsing metadata messages.:Image used when treating ignored chat messages as metadata$time of message Qerror message Rmessage HIsigils JKLMNSTUVcolor palette draw mode my nicknames identifier to draw color palette mode my nicks userinfo to drawO my nicks  other nicks P my nicks  other nicks QRHIJKLMNSTUVOPMarshaling support for C API(c) Eric Mertens, 2016ISCemertens@gmail.comSafe!" struct glirc_string struct glirc_commandarray array length struct glirc_messagearray array lengtharrayarray array length struct glirc_extensionOptional callbackOptional callbackOptional callbackOptional callbackNull-terminated name*Type of dynamic function pointer wrappers.0api token extension state command api token extention state message to send api token extension state api token path to extension initialized extension state   ,,    Dynamically loaded extension API(c) Eric Mertens, 2016ISCemertens@gmail.comNone!"  Information about a loaded extension including the handle to the loaded shared object, and state value returned by the startup callback, and the loaded extension record.$Struct of callback function pointers&Handle of dynamically linked extension'State value generated by start callback3The symbol that is loaded from an extension object."Extensions are expected to export: "struct galua_extension extension; Load the extension from the given path and call the start callback. The result of the start callback is saved to be passed to any subsequent calls into the extension.WCall the stop callback of the extension if it is defined and unload the shared object.Call all of the process message callbacks in the list of extensions. This operation marshals the IRC message once and shares that across all of the callbacks.W Marshal a X into a ; which will be valid for the remainder of the computation. path to extension clientstate stable pointer network current message Return ( to pass message client state stableptr parameters extension to command W network  message Y parameters Z[\      WYZ[\/Primary client state type and update operations(c) Eric Mertens, 2016ISCemertens@gmail.comNone4(All state information for the IRC clientclient message bufferspreviously focused buffercurrently focused buffer sec!state of active connections#network connection context$incoming network event queue%network name to connection ID& VTY handle'primary text box(current terminal width)current terminal height*client configuration+buffer scroll lines,use detailed rendering mode-sound a bell next draw.ignored nicknamesD] for finding the bI associated with a given network if that connection is currently active.E-The full top-most line that would be executedF*The line under the cursor in the edit box.GConstruct an initial  using default values.^ Initialize a _, value and run a continuation. Shutdown the _! once the continuation finishes.HTForcefully terminate the connection currently associated with a given network name.I;Add a message to the window associated with a given channel`5Extract the status mode sigils from a message target.abCompute the importance of a message to be used when computing change notifications in the client.JTPredicate for messages that should be ignored based on the configurable ignore listKARecord a message in the windows corresponding to the given targetb2Compute the sigils of the user who sent a message.c&Compute sigils for a user on a channelL$Record a message on a network windowdFRecord window line at the given focus creating the window if necessaryef& but with mostly defaulted parameters.M2Function applied to the client state every redraw.g0Mark the messages on the current window as seen.N@Add the textbox input to the edit history and clear the textbox.OCReturns the current network's channels and current channel's users.PFConstruct a text matching predicate used to filter the message window.QRemove a network connection and unlink it from the network map. This operation assumes that the networkconnection exists and should only be applied once per connection.R<Start a new connection. The delay is used for reconnections.hWhen a nick change happens and there is an open query window for that nick and there isn't an open query window for the new nick, rename the window.U9Start extensions after ensuring existing ones are stoppedV0Scroll the current buffer to show older messagesW0Scroll the current buffer to show newer messagesi@Compute the number of lines in a page at the current window sizeXJump the focus of the client to a buffer that has unread activity. Some events like errors or chat messages mentioning keywords are considered important and will be jumped to first.YBJump the focus directly to a window based on its zero-based index.\$Return to previously focused window.]VStep focus to the next window when on message view. Otherwise switch to message view.^ZStep focus to the previous window when on message view. Otherwise switch to message view.jStep focus to the next window when on message view. Otherwise switch to message view. Reverse the step order when argument is (.^klmn !"#$%&'()*+,-./0123456789:;o<=>?@ABpqCDnetwork EFline number, line content G^rHnetwork Inetwork channel `possible modes target actual modes, actual target aJKnetwork bnetwork channel sigils cnetwork channel user sigils LdfeMgNOsnetwork  channels tnetwork channel nicks PQRdelay in seconds optional disconnect time network name Stimestamp message recieved message network network connection state response , updated state hnetwork TuUVWiXYzero-based window index Z[\]^j reversed _vF !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_F !"#$%&'()*+,-./A>3@85?721<4=;:9D06GTUCPNOJEFHRQMS_ILKZ[\]^XYVWBFklmn !"#$%&'()*+,-./0123456789:;o<=>?@ABpqCDEFG^rHI`aJKbcLdfeMgNOstPQRShTuUVWiXYZ[\]^j_v9Foreign exports which expose functionality for extensions(c) Eric Mertens, 2016ISCemertens@gmail.comNone!" `Mark a window as being seen clearing the new message counter. To clear the client window send an empty network name. To clear a network window send an empty channel name.aMark a window as being seen clearing the new message counter. To clear the client window send an empty network name. To clear a network window send an empty channel name.bXThe resulting string is malloc'd and the caller must free it. NULL returned on failure.crThe resulting strings and array of strings are malloc'd and the caller must free them. NULL returned on failure.dqThe resulting strings and array of strings are malloc'd and the caller must free them. NULL returned on failure.fqThe resulting strings and array of strings are malloc'd and the caller must free them. NULL returned on failure.hFNetwork, command, and parameters are used when transmitting a message.w<Dereference the stable pointer passed to extension callbacksx Import a  into an XyPeek a  as UTF-8 encoded bytes.`api token network name network name length channel name channel name length aapi token network name network name length channel name channel name length bapi token network name network name length c api token  network  network len  channel  channel len 1null terminated array of null terminated strings d api token  network  network len 1null terminated array of null terminated strings eidentifier 1 identifier 1 len identifier 2 identifier 2 len f1api token 1null terminated array of null terminated strings gapi token enum message_code message message length 0 on success hapi token pointer to message 0 on success wxyz{|}~ `abcdefgh hgfdcbea``abcdefghwxyz{|}~Channel information renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNonei,Render the lines used in a channel mask listinetwork channel iii)Line renderers for channel mask list view(c) Eric Mertens, 2016ISCemertens@gmail.comNonej,Render the lines used in a channel mask listj Mask mode  network  channel jjj Renderer for status line(c) Eric Mertens, 2016ISCemertens@gmail.comNone kkk k!)Line renderers for channel user list view(c) Eric Mertens, 2016ISCemertens@gmail.comNonel3Render the lines used in a simple user list window.nGRender lines for detailed channel user list which shows full user info.lnetwork channel mnnetwork channel olmnolmnolmno" View of the list of open windows(c) Eric Mertens, 2016ISCemertens@gmail.comNonepppp# Implementation of slash commands(c) Eric Mertens, 2016ISCemertens@gmail.comNoneAT)q1Pair of a command and it's argument specificationPair of implementations for executing a command and tab completing one. The tab-completion logic is extended with a bool indicating that tab completion should be reversedno requirementsrequires an active networkrequires an active chat window!requires an active channel window=Type of commands that require an active channel to be focused=Type of commands that require an active network to be focused!Type of commands that always works%Possible results of running a commandtDContinue running the client, consume input if command was from inputu,Continue running the client, report an errorvClient should close8Consider the text entry successful and resume the client7Consider the text entry a failure and resume the client>Command failure with an error message printed to client windoww5Interpret the given chat message or command. Leading /d indicates a command. Otherwise if a channel or user query is focused a chat message will be sent.x?Execute command provided by user, resolve aliases if necessary.yRespond to the TAB key being pressed. This can dispatch to a command specific completion mode when relevant. Otherwise this will complete input based on the users of the channel related to the current buffer.;Treat the current text input as a chat message and send it.Parse and execute the given command. When the first argument is Nothing the command is executed, otherwise the first argument is the cursor position for tab-completionWhen used on a channel that the user is currently joined to this command will clear the messages but preserve the window. When used on a window that the user is not joined to this command will delete the window.Implementation of /meImplementation of /ctcpImplementation of /noticeImplementation of /msgCommon logic for /msg and /noticeCommon logic for /msg and /notice returning the client stateImplementation of /windows" command. Set subfocus to Windows./connect! tab completes known server names\When tab completing the first parameter of the focus command the current networks are used.yThis command is equivalent to chatting without a command. The primary use at the moment is to be able to send a leading / to chat easily./channela command. Takes the name of a channel and switches focus to that channel on the current network.Reconnect to the currently focused network. It's possible that we're not currently connected to a network, so this is implemented as a client command.Implementation of /reload(Attempt to reload the configuration fileSSupport file name tab completion when providing an alternative configuration file.NOT IMPLEMENTEDIUse the *!*@host masks of users for channel lists when setting list modes.Use the channel's mask list for removing modesUse the nick list otherwise=Predicate for mode commands that can be performed without opssComplete the nickname at the current cursor position using the userlist for the currently focused channel (if any)Used to send commands that require ops to perform. If this channel is one that the user has chanserv access and ops are needed then ops are requested and the commands are queued, otherwise send them directly.Implementation of /exec command.\qrfocused channel current network  arguments stuvwchat or command xy reversed ztarget target leading transform hints all completions reversed order  reversed  reversed mode polarity mode channel (hint, complete)  reversed channel commands network state  qrstuvwxyz stuvwxyqrzTqrstuvwxyz$Textbox renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNone}Compute the number of code-points that will be visible when the given string is truncated to fit in the given number of terminal columns.~ Version of 7 that accounts for how control characters are rendered Version of 7 that accounts for how control characters are rendered{|}rendered width input string codepoints that will fit ~{|}~{|}~{|}~% UI renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNone Generate a u for the current client state. The resulting client state is updated for render specific information like scrolling.-Classify window lines for metadata coalesence  current nick  metadata  palette .text box cursor position, image, updated statemetadata image possible nick transition possible nick transition metadata entries are reversed;Image, incoming identifier, outgoing identifier if changed  &Event loop for IRC client(c) Eric Mertens, 2016ISCemertens@gmail.comNoneX<Sum of the three possible event types the event loop handlesKey presses and resizingIncoming network events'Timed action and the applicable networkBlock waiting for the next V. This function will compute an appropriate timeout based on the current connections."Apply this function to an initial  to launch the client.*Sound the terminal bell assuming that the BEL control code is supported.1Respond to a network connection closing normally.3Respond to a network connection closing abnormally.Respond to an IRC protocol line. This will parse the message, updated the relevant connection state and update the UI buffers.Client-level responses to specific IRC messages. This is in contrast to the connection state tracking logic in "Client.NetworkState "!Find the ZNC provided server time6Parses the time format used by ZNC for buffer playbackgReturns the list of values that were stored at the given indexes, if a value was stored at that index.Respond to a VTY event.,Map keyboard inputs to actions in the clientProcess s by either running the  with the new  or returning.Respond to a timer event.finished network current time failed network current time termination reason Network ID of message current time !Raw IRC message without newlines now current network command now current network bad command Network related to event Action to perform *Safe             '$Processing of command-line arguments(c) Eric Mertens, 2016ISCemertens@gmail.comNone Command-line argumentsconfiguration file pathinitial networksshow help messageshow version messageDefault values for argumentsOption descriptionswLoad command line arguments. This action will terminate early in the case of the version flag, help flag, or an error.Returns  "-SOMEHASH" when in a git repository, "" otherwise.Returns "-dirty"! when in a dirty git repository, "" otherwise.   ++,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz { { | } ~                        !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWWXYZZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     QQ !!"#$%&'()*+,-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{| }!~!!!"##########$$$$$$%&'''''''''((((((0^a                           !"#$%&'()*+,-./0)1234256)7258)923:;<=;<>)?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}23~-         """"##################################################################################%%% % % % % %%%%%&&&&&&&&&&&&&&& &!&"&#&$&%&&*'*(*)***+*,*-*.*/*0*1*2*3'4'1'5'6'7'8'9':';<!glirc-2.12-LO23JDMJ9vgFefekAehS8SClient.State.EditBox.ContentClient.Image.MircFormatting Client.HookClient.Hook.Znc.Buffextras Client.HooksClient.EventLoop.ErrorsConfig.FromConfigClient.Configuration.ColorsClient.Image.PaletteClient.State.EditBox#Client.Configuration.ServerSettingsClient.Commands.WordCompletionClient.Commands.InterpolationClient.ConfigurationClient.Network.ConnectClient.Network.AsyncClient.Commands.ExecClient.Commands.ArgumentsClient.Image.ArgumentsClient.State.FocusClient.State.ChannelClient.State.NetworkClient.MessageClient.State.WindowClient.Image.MessageClient.CApi.Types Client.CApi Client.StateClient.CApi.ExportsClient.Image.ChannelInfoClient.Image.MaskListClient.Image.StatusLineClient.Image.UserListClient.Image.WindowsClient.CommandsClient.Image.Textbox Client.ImageClient.EventLoopClient.CommandArguments StrictUnit LensUtils Paths_glircLine_pos_text $fReadLine $fShowLineContentHasLinelinepostextendLine $fHasLineLine $fReadContent $fShowContentabovebelow noContent singleLineshiftjumpLeft jumpRightleftrightleftWord rightWord backspacedelete insertCharinsertPastedString insertString$fHasLineContent parseIrcTextparseIrcTextExplicit controlImage MessageHook_messageHookName_messageHookStateful_messageHookAction MessageResult PassMessage OmitMessage RemapMessage$fMonoidMessageResult$fSemigroupMessageResultmessageHookActionmessageHookNamemessageHookStatefulapplyMessageHooksbuffextrasHook messageHooksexceptionToLines SectionParser FromConfig parseConfig ConfigParserrunConfigParserfailure extendLoc decodeConfigliftConfigParser parseSections sectionOptsectionOptWith sectionReqsectionReqWithparseSectionsWith parseList$fFromConfig[]$fFromConfigAtom$fFromConfigRatio$fFromConfigInteger$fFromConfigText$fFunctorConfigParser$fApplicativeConfigParser$fMonadConfigParser$fFunctorSectionParser$fApplicativeSectionParser$fMonadSectionParser parseAttr parseColorPalette _palNicks_palSelf_palSelfHighlight_palTime_palMeta _palSigil _palLabel _palLatency_palWindowName _palError _palTextBox _palActivity _palMention _palCommand_palCommandReady_palCommandRequired_palCommandOptional_palCommandRemaining $fShowPalette palActivity palCommandpalCommandOptionalpalCommandReadypalCommandRemainingpalCommandRequiredpalErrorpalLabel palLatency palMentionpalMetapalNickspalSelfpalSelfHighlightpalSigil palTextBoxpalTime palWindowNamedefaultPalette LastOperation TabOperation KillOperationOtherOperationEditBox$fReadLastOperation$fShowLastOperation $fReadEditBox $fShowEditBoxcontent lastOperationdefaultEditBoxsuccessearlierlaterhomeendkillEndkillHomeyankkillWordBackwardkillWordForwardinsert insertPaste$fHasLineEditBoxUseTlsUseInsecureTls UseInsecureServerSettings_ssNick_ssUser_ssReal _ssUserInfo _ssPassword_ssSaslUsername_ssSaslPassword _ssHostName_ssPort_ssTls_ssTlsClientCert_ssTlsClientKey_ssConnectCmds _ssSocksHost _ssSocksPort_ssServerCerts_ssChanservChannels_ssFloodPenalty_ssFloodThreshold_ssMessageHooks_ssName $fShowUseTls$fShowServerSettingsssChanservChannels ssConnectCmdsssFloodPenaltyssFloodThreshold ssHostNamessMessageHooksssNamessNick ssPasswordssPortssRealssSaslPasswordssSaslUsername ssServerCerts ssSocksHost ssSocksPortssTlsssTlsClientCertssTlsClientKeyssUser ssUserInfoloadDefaultServerSettingsPrefix wordComplete $fPrefixText$fPrefixIdentifierExpansionChunk LiteralChunk VariableChunk IntegerChunkparseExpansionresolveExpansions$fShowExpansionChunk Configuration_configDefaults_configServers_configPalette_configWindowNames_configExtraHighlights_configNickPadding_configConfigPath _configMacros_configExtensions$fShowConfigurationConfigurationFailureConfigurationParseFailedConfigurationMalformedConfigurationReadFailedconfigConfigPathconfigDefaultsconfigExtensionsconfigExtraHighlights configMacrosconfigNickPadding configPalette configServersconfigWindowNamesloadConfigurationresolveConfigurationPath$fExceptionConfigurationFailure$fShowConfigurationFailurewithConnectionTerminationReason PingTimeoutForcedDisconnect NetworkEvent NetworkLine NetworkError NetworkCloseNetworkConnection NetworkIdsendabortConnectioncreateConnection$fExceptionTerminationReason$fShowNetworkConnection$fShowTerminationReasonExecCmd_execOutputNetwork_execOutputChannel _execCommand _execStdIn_execArguments $fReadExecCmd $fShowExecCmd execArguments execCommandexecOutputChannelexecOutputNetwork execStdIn emptyExecCmdoptions parseExecCmd runExecCmd ArgumentSpec ReqTokenArg OptTokenArg RemainingArgNoArgparseArguments plainTextargumentsImageFocus Unfocused NetworkFocus ChannelFocus $fEqFocus $fShowFocusSubfocus FocusMessages FocusInfo FocusUsers FocusMasks FocusWindows _Unfocused _NetworkFocus _ChannelFocus $fEqSubfocus$fShowSubfocus_FocusMessages _FocusInfo _FocusUsers _FocusMasks _FocusWindows focusNetwork $fOrdFocus MaskListEntry_maskListSetter _maskListTimeTopicProvenance _topicAuthor _topicTime ChannelState _chanTopic_chanTopicProvenance_chanUrl _chanUsers _chanModes _chanLists _chanCreation_chanQueuedModeration$fShowTopicProvenance$fShowMaskListEntry$fShowChannelState chanCreation chanLists chanModeschanQueuedModeration chanTopicchanTopicProvenancechanUrl chanUsers topicAuthor topicTimemaskListSetter maskListTime newChannel joinChannel partChannel nickChangesetTopic Transaction NoTransactionNamesTransactionBanTransactionWhoTransaction PingStatusPingSent PingLatency PingNeverPingConnecting UserAndHost NetworkState _csNetworkId _csChannels _csSocket _csModeTypes_csChannelTypes_csTransaction_csModes _csStatusMsg _csSettings _csUserInfo_csUsers _csModeCount _csNetwork_csNextPingTime _csPingStatus_csMessageHooks$fShowUserAndHost$fShowPingStatus$fShowTransaction$fShowNetworkStatecsChannelTypes csChannelscsMessageHooks csModeCount csModeTypescsModes csNetwork csNetworkIdcsNextPingTime csPingStatus csSettingscsSocket csStatusMsg csTransaction csUserInfocsUsers TimedActionTimedDisconnect TimedSendPingcsNicksendMsgnewNetworkState applyMessage squelchIrcMsgiHaveOpinitialMessagesisChannelIdentifiercsUsernextTimedActionapplyTimedAction$fEqTimedAction$fOrdTimedAction$fShowTimedAction MessageBodyIrcBody ErrorBody NormalBody ClientMessage _msgNetwork_msgBody_msgTime_IrcBody _ErrorBody _NormalBodymsgBody msgNetworkmsgTimemsgTextWindowLineImportanceWLBoringWLNormal WLImportantWindow _winMessages _winUnread _winTotal _winMention WindowLine_wlBody_wlText_wlImage _wlFullImage$fEqWindowLineImportance$fShowWindowLineImportance winMention winMessageswinTotal winUnreadwlBody wlFullImagewlImagewlText emptyWindow addToWindow windowSeenIdentifierColorModePrivmsgIdentifierNormalIdentifier RenderMode NormalRenderDetailedRenderMessageRendererParams rendStatusMsgrendUserSigils rendNicks rendMyNicks rendPaletterendNickPaddingdefaultRenderParamsmsgImagecoloredIdentifiercoloredUserInfoquietIdentifier metadataImg ignoreImage FgnStringLenFgnCmdfcParamsfcParamNFgnMsg fmNetwork fmPrefixNick fmPrefixUser fmPrefixHost fmCommandfmParamsfmParamN fmTagKeys fmTagValsfmTagN FgnExtensionfgnStartfgnStop fgnMessage fgnCommandfgnNamefgnMajorVersionfgnMinorVersionDynamicProcessCommandProcessMessage StopExtensionStartExtension MessageCoderunProcessCommandrunProcessMessagerunStopExtensionrunStartExtension normalMessage errorMessage passMessage dropMessage$fStorableFgnStringLen$fStorableFgnCmd$fStorableFgnMsg$fStorableFgnExtension$fEqMessageCode$fEqMessageResultActiveExtensionaeFgnaeDL aeSessionaeNameaeMajorVersionaeMinorVersionextensionSymbolactivateExtensiondeactivateExtensionnotifyExtensionscommandExtensionExtensionState ClientState_clientWindows_clientPrevFocus _clientFocus_clientSubfocus_clientConnections_clientNextConnectionId_clientConnectionContext _clientEvents_clientNetworkMap _clientVty_clientTextBox _clientWidth _clientHeight _clientConfig _clientScroll_clientDetailView _clientBell_clientIgnores_clientExtensions clientBell clientConfigclientConnectionContextclientConnectionsclientDetailView clientEventsclientExtensions clientFocus clientHeight clientIgnoresclientNetworkMapclientNextConnectionId clientScrollclientSubfocus clientTextBox clientVty clientWidth clientWindowsesActive clientParkclientConnectionclientFirstLine clientLinewithClientState abortNetworkrecordChannelMessage ircIgnorablerecordIrcMessagerecordNetworkMessage clientTick consumeInputcurrentCompletionList clientMatcher removeNetwork addConnectionapplyMessageToClientStateclientShutdownclientStartExtensionspageUppageDownjumpToActivity jumpFocus changeFocuschangeSubfocus returnFocus advanceFocus retreatFocusclientHighlightsGlirc_clear_windowGlirc_mark_seen Glirc_my_nickGlirc_list_channel_usersGlirc_list_channelsGlirc_identifier_cmpGlirc_list_networks Glirc_printGlirc_send_messagechannelInfoImagesmaskListImagesstatusLineImageuserListImagesuserListImages'userInfoImagesuserInfoImages' windowsImagesCommand CommandResultCommandSuccessCommandFailure CommandQuitexecuteexecuteUserCommand tabCompletioncommands textboxImage renderContentcomputeCharWidth myWcwidth myWcswidth renderLine clientPicture eventLoopCommandArguments_cmdArgConfigFile_cmdArgInitialNetworks_cmdArgShowHelp_cmdArgShowVersioncmdArgConfigFilecmdArgInitialNetworksgetCommandArgumentsbaseData.Semigroup SemigroupGHC.BaseMonoid$fMonoidStrictUnitmappend$fSemigroupStrictUnit<>stimes_above _currentLine forwardLine backwardLine_below emptyLine beginLine currentLine FormatState_fmtFore_fmtBack_fmtBold _fmtItalic _fmtUnderline _fmtReverseSegment TextSegmentControlSegmentfmtBackfmtBoldfmtFore fmtItalic fmtReverse fmtUnderline formatAttrdefaultFormatState parseIrcText'pSegmentpIrcLine pColorNumbersoptional applyColors mircColor rgbColor'applyControlEffect'irc-core-2.1.1.1-7ZqDtXlbnZjCBX2qhDUxAb Irc.MessageIrcMsgNothingJustmaybeFromResultremapprefixedParser allTokens skipTokenparseId filterEmpty parseReasonindentMessages cleanLineexceptionToLines'explainIOErrorexplainTLSExceptionexplainTLSError'config-value-0.5-1HCDOGaS28yElYuxvvBJsR Config.ValueValueSectionsListAtomNumber#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalText toHashMapfloatingToRatio vty-5.9.1-D7uVaW7wzHXDImsb2ZaapgGraphics.Vty.AttributesdefAttrparseAttrEntry parseStyles parseStyleparseColorNumber parseIntegerparseRgb namedColorsdefaultNickColorPaletteupdateYankBuffer_content_history _historyPos _yankBuffer_lastOperation KillDirection KillForward KillBackwardhistory historyPos yankBufferisPrefixtoString replaceWith currentWord tabSearch parseChunk parseVariablegetOldConfigPathdirectory-1.2.6.2System.DirectorygetAppUserDataDirectorygetNewConfigPathgetXdgDirectory XdgConfigemptyConfigFilereadFileCatchNotFoundreadConfigurationFiledefaultWindowNamesparseConfiguration parsePalette paletteHelper parseServersparseServerSettingsparseServerSetting parseUseTlsparseNumparseIdentifier parseString parseMacroMap parseMacroparseMacroCommand'connection-0.2.6-BxlVyyngXMYHAxegKHkAmPNetwork.Connection.Types ConnectionbuildConnectionParamsircPortbuildCertificateStorebuildTlsSettingsloadClientCredentials connOutQueue connAsyncstartConnectionsendLoopircMaxMessageLength receiveLoopString nextTokenmkPlaceholdersGraphics.Vty.Image.InternalImage overStrict lens-4.14-Bb4ekaqwx8nBHtxVG4rt2mControl.Lens.TypeSetterControl.Lens.Setterover setStrictsetzonedTimeLocalTimeLens time-1.6.0.1Data.Time.LocalTime.LocalTime LocalTime ZonedTimelocalTimeTimeOfDay doWelcome Irc.Codes RPL_WELCOMErecordListEntrysaveList squelchReplyghc-prim GHC.TypesTruemassRegistration_NoTransaction_NamesTransaction_BanTransaction_WhoTransaction utf8ChunksOfnoReply overChannel overChannelsdoTopicparseTimeParamdoRpldoModedoChannelModes doMyModes supportedCapsdoAuthenticatedoCap loadNamesList createOnJoin updateMyNickisupport parseISupportupdateChanModesupdateChanPrefix parsePrefixes recordUser forgetUser renameUser forgetUser'doPong renderTimestatusMsgImage bodyImage timeImage datetimeImagerightPad ircLineImageparseIrcTextWithNickshighlightNicks errorImage normalImage renderCapCmdseparatorImageseparatedParamsrenderReplyCode withRawIrcMsg Irc.RawIrcMsg RawIrcMsg withCommandwithTagwithTextcontT2 TraversalwithVty Graphics.VtyVtysplitStatusMsgModes msgImportancecomputeMsgLineSigilscomputeUserSigilsrecordWindowLine toWindowLine' toWindowLinemarkSeenapplyWindowRenames scrollAmount stepFocus _esActive_esMVar _esStablePtrclientPrevFocusesMVar esStablePtrwithExtensionStatenetworkChannelListchannelUserListclientStopExtensionsclientHighlightsNetwork derefToken peekFgnMsgpeekFgnStringLenglirc_send_message glirc_printglirc_list_networksglirc_identifier_cmpglirc_list_channelsglirc_list_channel_users glirc_my_nickglirc_mark_seenglirc_clear_windowchannelInfoImages'maskListImages' scrollImage latencyImage infoBubble detailImage activityImage myNickImage focusImagechannelModesImageparensrenderWindowColumns createColumns renderedFocusrenderedWindowInfo CommandImpl ClientCommandNetworkCommand ChatCommandChannelCommandcommandSuccesscommandFailurecommandFailureMsg executeChatexecuteCommandcmdClearcmdMecmdCtcp cmdNoticecmdMsg chatCommand chatCommand' cmdWindows tabConnecttabFocuscmdSay cmdChannel cmdReconnect cmdReload tabReloadcomputeModeCompletionisPublicChannelModenickTabCompletionsendModerationcmdExec expandAliases noClientTab noNetworkTab noChannelTabsimpleClientTabsimpleNetworkTabsimpleChannelTabcmdExitcmdQuote cmdConnectcmdFocussimpleTabCompletioncmdWhoiscmdWho cmdWhowascmdIson cmdUserhostcmdStatscmdAwaycmdLinkscmdTimecmdZnccmdZncPlaybackcmdModecmdNickcmdPart cmdInvitecommandSuccessUpdateCScmdTopictabTopiccmdUserscmdChannelInfocmdMaskscmdKick cmdKickBancomputeBanUserInfo cmdRemovecmdJoincmdQuit cmdDisconnect cmdIgnore modeCommandtabMode activeNickscommandNameCompletion useChanServ cmdExtension recordError recordSuccessGraphics.Text.WidthwcwidthwcswidthGraphics.Vty.PicturePicturemetadataWindowLine MetadataState clientImagemessagePaneImageschatMessageImages messagePanewindowLinesToImages startMetadatatransitionMetadatacontinueMetadatagatherMetadataLineslineWrap ClientEventVtyEvent TimerEventgetEventbeepdoNetworkClosedoNetworkError doNetworkLineclientResponsecomputeEffectiveTime parseZncTimelookups doVtyEventdoKeydoCommandResult doTimerEventreconnectAttemptsprocessConnectCmdreportConnectCmdError executeInputcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamedefaultCommandArguments gitHashTxt gitDirtyTxtcmdArgShowHelpcmdArgShowVersionassembleCommandArgumentshelpTxt versionTxt